Alexander
В данном случае это вынужденно, т.к. js однопоточный. В Го этого просто в принципе не нужно
Alexander
Кто в Java многопоточку писал, тот в го поёт и пляшет при виде каналов и горутин
Alexander
Вот там действительно всякая обвязка и прочее
Gleb
Но я про это не говорю, модель параллелизма в Go мне нравится, всё не плохо. Но вот синтаксис с чисто структурами просто убивает. Я понимаю, что гуглу хотелось иметь язык для студентов, но с нормальным быстродействием и сборщиком мусора. Но шот как-то слишком сильно упростили.
Alexander
Но я про это не говорю, модель параллелизма в Go мне нравится, всё не плохо. Но вот синтаксис с чисто структурами просто убивает. Я понимаю, что гуглу хотелось иметь язык для студентов, но с нормальным быстродействием и сборщиком мусора. Но шот как-то слишком сильно упростили.
Ну сам же говорил - сначала попробовать модель. С ограничениями и жёсткими правилами. Потом постепенно расширят туда, куда нужно. Может в Go 2 что-то добавят (хотя вряд ли радикально), но это не делает Go 1 в чем либо неполноценным. Опыт показал, что на нём можно много чего писать и людям вцелом нравится.
Alexander
Тот же Docker, который, практически, революцию совершил в девопс
Gleb
Тот же Docker, который, практически, революцию совершил в девопс
Ну тут просто цели гугла и мои немного отличаются) Для docker Go - отличный вариант. Это проект, в который контрьбьютит куча народу, в том числе и индусы непонятную дичь пытаются пропихнуть. Так что простота, низкий порог входа и сложность создания говнокода - на первом месте. Мне бы в своих проектах хотелось бы видеть компактный и красивый код. Короче, понятно. Город засыпает, просыпается костылестроитель 🙃
Slava
а как ты узнаёшь что у тебя компактный и красивый код? =)
Gleb
а как ты узнаёшь что у тебя компактный и красивый код? =)
Внутреннеe чувство прекрасного, никак иначе 🤷‍♂️
🎉
Нашёл какой-то мануал, пытаюсь на основе его забацать, но чото не выходит, ЧЯДНТ? https://play.golang.com/p/A10hI26GgZx Получаю такое: 2018/01/25 05:08:29 sql: database is closed
Slava
на 26 строке ты закрываешь базу при выходе из функции
Slava
поэтому она закрыта
🎉
поэтому она закрыта
Дык, закрываю через дефер.
Slava
а когда дефер выполняется?
Slava
https://tour.golang.org/flowcontrol/12
🎉
Хм, странно, а где же базу тогда закрывать?
Slava
можешь в main
Slava
сразу же после проверки, что InitDB не вернул ошибку
🎉
Оу, спасибо всем, вот не подумал где накосячу.
Slava
не за что
Andrey
Котаны, а много ж кто на Гоконф идёт, да?
Roman
надо в список грехов добавить прелюбодеяние с языками программирования
Andrey
https://www.gophercon-russia.ru
Andrey
Да, тоже вот купил уже билеты
🎉
Блэд, чтож так сложно то с БД? Или это у меня только?)) https://play.golang.com/p/QU3JVW1nEvy получаю что такой строки нет, а когда через терминалку захожу в базу, то всё нахожу. ЧЯДНТ?
Alexey
Какая база?
Alexey
Мб банально не тот файл открываете?
Alexey
На первый взгляд, всё ок
🎉
Мб банально не тот файл открываете?
Да тот, в папке вместе лежит. Сначала инициализирую БД, проверил, всё ок. func Init() (db *sql.DB, err error) { db, err = sql.Open("sqlite3", "./data.db") if err != nil { log.Fatal(err) } if err = db.Ping(); err != nil { log.Fatal(err) } return db, err }
Dmitriy
покажи функцию ReturnUser, в примере ReturnChatID
🎉
На первый взгляд, всё ок
Я там очепятался. Кажется понял где косяк, выполняю в атоме, не находит, запустил в терминалке вроде чото выдало. Спасибо.
Anonymous
Это как?
var myvar int64 Scan(&myvar) Зачем использовать структуру DATA, если возвратить нужно только int64? :)
🎉
var myvar int64 Scan(&myvar) Зачем использовать структуру DATA, если возвратить нужно только int64? :)
Ну это я сократил, там структура побольше. Всё заработало, атом полжизни у меня отобрал)) Надо было сразу в терминалке исполнить.
🎉
Всем спасибо.
Anonymous
Хм, думаешь atom переватывает данные и крадёт их?!
🎉
Хм, думаешь atom переватывает данные и крадёт их?!
Нууу, Ctrl+B выполняет жи, а тут такая засада.
Anonymous
Разрабов к ответу! Небось они и Half-Life 3 так украли!
Sebor▂▅▇█▓▒░
А кто-нить может подсказать простенький оракловый клиент на go?
Alexander
а их там два вроде всего было. хз насколько они сложные.
Alexander
https://github.com/golang/go/wiki/SQLDrivers
Sebor▂▅▇█▓▒░
я вот пробую https://github.com/rana/ora просношался с установкой и library_path, вроде бы поставился
Sebor▂▅▇█▓▒░
но при запуске примера выдает: ora.Cfg().StmtCfg.SetPrefetchCount undefined (type ora.StmtCfg has no field or method SetPrefetchCount)
Ivan
Есть массив со структурами... Допустим беру из массива структуру и в структуре обновляю значение.... Ну так вот, как это сделать что бы не возникло race condition? не говнокодя))
𝒦𝒶𝓁𝒶𝓎⛩
может кто подскажет есть альтернативы opengts на go
Ivan
мютекс использовать
при каждом обращении к массиву? Походу придется...
Artem
нет и гоша тут не при чем, блокировать надо если планируется запись
Vasily
надо на время чтения
Ivan
а если во время чтения что то поменяется?
Ivan
получается что надо, правда можно юзать тогда read блокировку
Vasily
если чтение интенсивное - можно исполдьзовать RWMutex
Artem
и всех сажать в очередь на ожидание пока читает кто то?
Vasily
там лок на чтение и запись разделён
Vasily
чтение не будет блочить всех
Artem
Artem
ну значит все круто
Ivan
окей, значит других штук нету. Спасибо за ответы! Вдруг я что то в документации прошляпил и буду фигарить то что уже есть....
Pawel
В рамках ФПшного подхода безумно нужная вещь
это хипстерская вкусовщина. а не ФП-шный подход
Илья
Если ты изменяешь поле в структуре, то мутексы можно в структуре держать, а не в массиве, тк лочить весь массив на модификации одного элемента, по-моему не очень
Michael
В рамках ФПшного подхода безумно нужная вещь
Uniform Function Call Syntax из D это вот удобно
Sebor▂▅▇█▓▒░
Использовал вот этот http://gopkg.in/goracle.v2
а можешь сслыки с примерами накидать?
Michael
а можешь сслыки с примерами накидать?
там по ссылке есть описание апи, и пакет преднзначен для database/sql/driver, что означает, что надо подключить пакет, задать правильно строку подключения, и работать с общим sql интерфейсом для Go
Michael
примеры есть в оф доках
Sebor▂▅▇█▓▒░
а, понел, буду посмотреть стандартный sql)
🏁Александр
порекомендую вас за 50%!
Alexander
Рекомендую /report to @twentydraft
Anonymous
goarch стоит 386, а go build все равно компилит x64 это норма?
Sebor▂▅▇█▓▒░
Anonymous
Сейчас не за ПК
Anonymous
У меня gcc установлен x86_64 Может просто 32бит накатить?
Anonymous
а причем тут gcc ? :)