Denis
есть проблема с этой тулзой
Denis
dep init и dep ensure не добавляют зависимости
Aleksandr
так задавай вопрос. не надо переписывать людей
Denis
Denis
dep init просто создает пустой taml файл
Denis
попробовал glide но go в итоге резолвит кривой путь к vendor папке (добавляет "_" к пути)
Denis
проект уже с готовой кодовой базой, сейчас только dependency manager прикручиваю
MXLTN
Не совсем понял вопрос
нужно поменять в google doc по шаблону программно контент.
MXLTN
как это можно сделать?
MXLTN
я не могу найти либы
Denis
я не могу найти либы
https://developers.google.com/sheets/api/
Denis
https://habrahabr.ru/post/305378/
MXLTN
это все про spreadsheets а у меня google doc
MXLTN
docs
Sergius Ofitserov
Go обязателен в этой реализации?
MXLTN
нет) но я другого не знаю (.Net C#. но заводить в проект ради этого не хочется)
Denis
https://github.com/google/google-api-go-client
Anonymous
Ребят, помогите правильно остановить pq notify func waitForNotification(l *pq.Listener, conn * websocket.Conn){ for { _, _, err := conn.ReadMessage() if err != nil { l.Close() } select { case n := <-l.Notify: fmt.Println("Received data from channel [", n.Channel, "] :") conn.WriteJSON(n.Extra) return case <-time.After(90 * time.Second): fmt.Println("Received no events for 90 seconds, checking connection") go func() { l.Ping() }() return } } }
Vasilii
кто знает почему golang может ругаться на Illegal instruction (core dumped)? собираю бинарник у себя локально, имадж с компилятором golang:1.8-alpine, запускаю на aws. Причем на некоторых инстансах работает, а на других нет
Aleksandr
процессор не поддерживает какие-то инструкции может?
Aleksandr
некоторые считают что шутки про дженерики через годы так же смешны как и в начале
Roman
ldflags позволяет хеш коммита в бинарник засунуть
go build -ldflags "-X main.githash git rev-parse HEAD" myapp.go
Roman
main.gethash - глоб. переменная в main с именем githash
Slach
откровенно говоря go проектировался как раз для разработки web приложений, и не ясно - зачем нужен фрэймворк?
=) вообще он как язык общего пользования задумывался и веб приложения на нем не так уж легко делать API всякие на RAML да фронтенд на GopherJS делать не удобно https://github.com/golang/go/issues/18892 эхх... написал бы кто нибудь уже go бекенд для WebAssembly вот тогда заживем =) хотя все ссут это делать, потому что "безопасность" и все такое
Slach
;))) Народ, а лучше объясните мне ламеру пожалуйста за папку cmd ? вот есть у меня некоторый GOPATH=~/go```и есть соответсвенно ```~/go/src/bitbucket.org/myorg/myrepo и вот в этом myrepo есть cmd/example.go с package main где эта cmd/example.go должна лежать? чтобы было удобно делать go get и go build? и чтобы мне в ней импортировать import ( "bitbucket.org/myorg/myrepo/library" ) ?? или ее просто в корень myrepo класть вместо cmd ?
ainu
смотри
ainu
делаешь /repo/cmd/example/examlpe.go
ainu
в папке example может лежать еще хоть 10 файлов - все package main
ainu
есл ипоявится второй бинать то рядом с cmd
ainu
ainu
каждая папка - отдельный пакет, поэтому в самой cmd нет файло гошных
ainu
Также сделано у самой go https://github.com/golang/go/tree/master/src/cmd
Slach
ок. т.е. при правильно настроенном GOPATH я сделаю cd ~/go/src/bitbucket.org/myorg/myrepo и потом go build cmd/mycmd/mycmd.go ? так ?
ainu
ну там все просто cd cd ~/go/src/bitbucket.org/myorg/myrepo/cmd/mycmd
ainu
go build
Slach
блин у них папка src есть в репозитории
ainu
ты так пишешь как будто программа в файле
ainu
а программа НЕ в файле mycmd.go
ainu
а в папке
Slach
да я в курсе что такое package main
ainu
и программа - это несколько файлов
ainu
а ну ок
Slach
я пытаюсь понять как правильно структурировать проект в котором одновременно и библиотечный и исполняемый код
ainu
да-да, все верно
ainu
cmd, там для каждого бинарника по папке, внутри минимум два файла (main.go и main_test.go к слову)
ainu
у меня такой же проект пилится с февраля, тоже есть библиотека и бинарь который поверх неё работает из папки cmd
ainu
судя по битбакету у тебя приватный проект пока?
ainu
аналогично lib root —cmd/server.go — ... файлы либы
Это если сервер один приниципиально, то да, cmd/server.go У меня потенциально в будущем может быть несколько, поэтому уровнем больше (как у Go)
Slach
у меня приватный проект =) это что-то меняет? если бы в проекте только библлиотечный код то все ок кладем все в корень я понял на какой ты вопрос мне отвечаешь =) ты мне рассказываешь как несколько cmd в проекте хранить, а вопрос у меня в другом а я хочу понять как хранить одновременно src cmd и чтобы в стороннем проекте из src можно было бы import сделать я увидел что в golang/go есть папка src и это рвет мне шаблон =( сильно
ainu
то, что есть папка src -для них простительно
ainu
для остальных не очень
ainu
просто у тебя src Будет называться bitbucket/myuser/myrepo
ainu
так можно server1.go, server2.go итд
ЭЭЭ, а тесты? а если в один файл не поместится?
Aleksandr
ну это уже как удобнее и как правильнее. у меня просто такие вещи: server.go, parser.go, bot.go
ainu
А бинарник тестить не надо?
ainu
у меня простой бинраник сервер который просто по http Обращается к либе с 3 урлами, состоит из четырех файлов
ainu
3 с кодом и тесты
ainu
ну не знаю дело ваше
ainu
потом страдать изза того что файл длиной 6000 строк
Aleksandr
А бинарник тестить не надо?
зачем мне тестить бинарник, если это тупо вызов методов стдлиб и самой либы
Aleksandr
либа протещена
ainu
ну если это сервер то как он отвечает на запросы комплексные
ainu
как либу инициирует
ainu
я вот тестирую и не жалею - иногда всплыают нюансы
Aleksandr
в бинарнике просто server.Run() типа такого
ainu
ааа=)
ainu
тогда да тогда норм
ainu
у меня посложнее