Aleksandr
ну а не надо усложнять. вся функциональность должна быть описана в коде, а в бинаре только вызвана
ainu
У меня сложнее чуток. Бинарь и либа это разные проекты.
ainu
Бинарь использует либу и без нее не может, но это разные проекты
Aleksandr
понял
ainu
У каждого своё конечно
ainu
Если вот такой подход с однострочным бинарем, можно сделать как у центрифуги
ainu
https://github.com/centrifugal/centrifugo
Aleksandr
тогда правильнее просто по разным проектам разнести - либа отдельно, бинарь, использующий либу отдельно (не в cmd либы)
ainu
там бинарник главный, но там в main() одна строчка
ainu
не, все правильно у меня. У меня база данных. встаиваемая и несколько реализаций. Так должно быть. Но реализация это не одна строчка.
Aleksandr
я такого же подхода придерживаюсь. но кажется тут бинарь размазан по самой либе (ключи команой строки итд)
ainu
нее, не-не-не
ainu
вот как тут
ainu
https://github.com/boltdb/bolt
ainu
у меня
Aleksandr
не, я про центрифуго
ainu
аа, да
ainu
у них неканонично
ainu
могут себе позволить
Aleksandr
https://github.com/centrifugal/centrifugo/blob/3c27a7f35be21b083288744ce562080fec1efddc/libcentrifugo/centrifugo/main.go#L152
Aleksandr
какая же это либа, если они флаги в ней читают? просто размазанный по коду бинарник
Aleksandr
который трудно отдельно использовтаь (если возможно)
ainu
это сделано чтобы сделать свой бинарник чтобы внего впилить все возможности центрифуги, добавиви свои. все возможности включая флаги
ainu
там своя атмосфера
Aleksandr
это сделано чтобы сделать свой бинарник чтобы внего впилить все возможности центрифуги, добавиви свои. все возможности включая флаги
а это неправильно. должен быть конфиг в либе, который заполняется флагами непосредственно в бинаре. тогда мы конфиг можем собирать в любом виде - флаги, json/yaml/toml итд
Aleksandr
типа такого: func main() { flagDebug := flag.Bool("debug", false, "") flagLeft := flag.String("left", "", "") flagRight := flag.String("right", "", "") flagDatabasePath := flag.String("databasePath", "", "") flag.Parse() options = &bitbot.Options{ Debug: *flagDebug, Left: *flagLeft, Right: *flagRight, DatabasePath: *flagDatabasePath, } log.Printf("Bot version: %s", version) db, err := bitbot.GetDb(options.DatabasePath) if err != nil { log.Fatalf("Database error: %s", err) } dbConnection = db bot := bitbot.NewBot(apiKey, apiSecret) bot.Run() }
Zloy-Dobry
Форматнул б ну
Aleksandr
а что не так?
Zloy-Dobry
Читать больно))
Aleksandr
https://i.imgur.com/1McTSoh.png
Zloy-Dobry
так имхо удобней
Aleksandr
у меня ок. не знаю как еще можно сделать
Aleksandr
Zloy-Dobry
Чот у меня тележа походу стала формат отображать не так как раньше
Zloy-Dobry
Сорчн, дядь.
Alexey
<зануда>есть же Go Playground</зануда>
hypnopumpia
Компилирую под виндовс сервис с Сишной библиотекой, build не может найти pkg-config, хотя я добавил в path MinGW\bin, где лежит бинарник. ЧЯДНТ?
hypnopumpia
Перезапустил машину, та же ошибка. build еще странно себя ведет: при первом запуске виснет, когда силой выключаю - получаю ошибку о pkg-config, при следующих запусках ошибку выводит сразу
Axm
Компилирую под виндовс сервис с Сишной библиотекой, build не может найти pkg-config, хотя я добавил в path MinGW\bin, где лежит бинарник. ЧЯДНТ?
Что пишет where pkg-config в консоли? Добавлял путь вручную? Меня смущает последняя точка с запятой.
hypnopumpia
Cпасибо за наводку, по старой памяти вписал все в одну строку через ; Сейчас разнес и нашлось
Эмин
Ох уж эта винда
Эмин
:)
Ilya
если нужно написать SPA который бы имел хороший желательно авто-документированный API, ORM.. в общем знаю, что многие не рекомендуют, но какой-то аналог rails для golang? судя по всему, выбирать приходится между revel, iris, beego. в Iris смущает что там какой-то не совсем адекватный автор и нет коммунити, в beego коммунити есть но большинство китайцы, остаётся revel?
Nafania
Iris же продался кому-то и не развивается
Ilya
ну я вот зашёл в их официальный чат, там 2(!) человека онлайн и один из них - я 🙂 поэтому iris вроде как отпадает
Nafania
Го про другое да, на го апи сделать можно, но про фронт лучше забыть
Nikita
В го как и в рельсах есть сервер-сайд шаблонизатор, только это прошлый век
Nikita
Кто-то до сих пор для этого пхп пользует, хе-хе
Мерль
Buffalo – Rapid Web Development in Go https://gobuffalo.io/
Ilya
тут есть такая статья... сильно холиварная и, судя по всему, автор влюблён в iris, но буффало там вроде как самая нефункциональная https://blog.usejournal.com/top-6-web-frameworks-for-go-as-of-2017-23270e059c4b хотя, может действительно проще пойти другим путём и использовать что-то вроде gorillatoolkit.org
Mikhail
https://gist.github.com/anonymous/364ad4373c9fbf368c2f4ad4fff5c9f1
Mikhail
https://gist.github.com/anonymous/03fdd3ddbcff9d481acfd045ea86a698
Aliaksandr
может ли следующая функция вернуть отрицательное значение? func Abs(n int) int { if n < 0 { return -n } return n }
Anonymous
никак нет
Anonymous
если входное < 0 то -входное -> - и - + если больше то само число
Anonymous
есть в принципе 1 кейс https://play.golang.org/p/BwuNX7Whh7t
Заур
есть в принципе 1 кейс https://play.golang.org/p/BwuNX7Whh7t
Вот я бы в жизни не догадался про такой момент. Ещё один яркий пример почему надо пользоваться стандартными готовыми решениями
Anonymous
Вот я бы в жизни не догадался про такой момент. Ещё один яркий пример почему надо пользоваться стандартными готовыми решениями
https://play.golang.org/p/mrQrGRIPN2X Хехе, в данном случае и стандартная функция тебя не спасёт, т.к. проблема не в округлении.
Ilya
в чём печаль-то? переполнять переменные - зло в любом языке https://play.golang.org/p/jTaXXCSerfK
Anonymous
в чём печаль-то? переполнять переменные - зло в любом языке https://play.golang.org/p/jTaXXCSerfK
Насчёт "в любом языке" - в некоторых есть проверки на переполнение.
Slach
всем привет а можно еще тупой вопрос вот когда мы делаем go get как она понимает какие файлы надо компилить в бинарники и в какие бинарники в $GOPATH/bin/? через наличие package main ? а имя бинарника откуда берется? из имени каталога?
Nikita
всем привет а можно еще тупой вопрос вот когда мы делаем go get как она понимает какие файлы надо компилить в бинарники и в какие бинарники в $GOPATH/bin/? через наличие package main ? а имя бинарника откуда берется? из имени каталога?
Насчет имени бинарника. Если билдить каталог, то имя бинарника будет содержать имя каталога, но если билдить файл, то имя бинарнкиа будет как имя файла
Nikita
Но это не связано с командой go get
Axm
Может кто знает, есть ли готовые решения для релогина http-клиента при протухшей куке? Неохота писать все с нуля, но ничего не гуглится.
Anonymous
Коллеги, привет. Так-как ни одного нормального ресурса с удобными поиском и большой базой IT-событий (хакатонов, конференций, вебинаров) не нашли, решили сделать свой агрегатор. Кто готов - потратьте, пожалуйста, минуту на наш Google-опросник https://docs.google.com/forms/d/e/1FAIpQLSeF62yKGrK_dA9s06MXASrGZMof2pVPsI_cBXCvKk-6BBA4-A/viewform
Roman
Может кто знает, есть ли готовые решения для релогина http-клиента при протухшей куке? Неохота писать все с нуля, но ничего не гуглится.
слайс из middleware, заворачиваешь в http.HandleFunc, которая его обходит, и в одной из middleware активируешь куку, если она просрочена, либо отправляешь редирект
Roman
а кастинг из interface в структуру сильно дорого?
Vladimir
meetup.com не видели?
Ты чо, митап он про митапы, а у них про мероприятия!
Vladimir
(сарказм)
Заур
Timepad