Slava
скриншот
Мерль
покажи мне в личку как это выглядит?
ага, сейчас, оно запустится
Slava
https://golang.org/dl/#go1.8rc1
Амир
Кстати ide от IDEA мне очень не понравилась
Это та что EAP? https://blog.jetbrains.com/go/ ?
Constantine️
а другой нет
Амир
а другой нет
Действительно, я просто подумал что могла идти речь о плагине
Мерль
[last news] Hitless TLS Certificate Rotation in Go
Амир
A.
Мыыыылооооо
Kirill
@olebedev тут проблема у тебя с go get https://gocover.io/github.com/olebedev/go-tgbot
Constantine️
gocover странный сервис
Constantine️
зачем?
Constantine️
почему?
Constantine️
кому он нужен?
Kirill
кому он нужен?
ты в awesome-go что-то таскал?
Constantine️
постоянно это делаю
Constantine️
утром 5 раз по 3 подхода
Constantine️
и вечером перед сном
Constantine️
а более контруктивные объяснения есть?) для повседеневной жизни
Oleg
@olebedev тут проблема у тебя с go get https://gocover.io/github.com/olebedev/go-tgbot
Там нет тестов, так как пакет на 95% автоген. Может поэтому?
Daniil
Кто-нибудь использовал ui? https://github.com/andlabs/ui Как из под Linux скомплить под виндовс, ругается на undefined: ui.Main и далее на все методы ui.
Daniil
Нашёл решение, если кому интересно. Поставил mingw-w64-gcc Потом поменял переменные окружения: $ export GOOS=windows $ export GOARCH=amd64 $ export CGO_ENABLED=1 $ export CC=x86_64-w64-mingw32-gcc $ export CXX=x86_64-w64-mingw32-g++ И дальше сборка: go build -ldflags -H=windowsgui -o test.exe main.go
Daniil
Скажите, сейчас у всех windows 64? Или ещё есть те кто ставит 32?
Vladimir
Скажите, сейчас у всех windows 64? Или ещё есть те кто ставит 32?
говорят еще год назад на планшетах на атоме была 32-х битная винда
Daniil
Ну буду надеятся, что пользаветели не заморачиваются и ставят по умолчанию 64...
Daniil
Забыл сказать, что после тех манипуляций бинарник вышел в 17МБ. Против 1,7мб изначальных
Kirill
Там нет тестов, так как пакет на 95% автоген. Может поэтому?
ты же понимаешь, что это не оправдание, да? %)
Kirill
а более контруктивные объяснения есть?) для повседеневной жизни
мне так проще смотреть покрытие, как и всем меинтейнерам awesome-go
Daniil
Вкусная вакансия попалась https://spb.hh.ru/vacancy/19375026
Мерль
> Java разработчик, который хочет помочь программистам на языке Go.
Daniil
ну там ниже >Идеальный кандидат программирует на Java и Go
Daniil
ыыы
Oleg
Ребята, а скиньте пожалуйста ссылку на статью где говорять/пишут что вендорить код для библиотек - плохо
🏳️ Phil
щито?
Oleg
щито?
Проблема не очевадна, но она есть: Типы из ./vendor/pkg и типы из $GOPATH/src/pkg Go определяет как разные. Отсюда, если какая та библиотека завендорила что то и использует это что то в своем публичном АПИ, то ты не сможешь это что то использовать из своего окружения, только из папки вендор, этой библиотеки. Но если у тебя таких библиотек больше одной, то они не смогут подружиться.
Oleg
Парнишка сделал PR с вендором, хочу ему кинуть статью, чтоб долго не расписывать.
🏳️ Phil
что такое "завендорить"?
Oleg
Ой
Oleg
Положить в CSV
🏳️ Phil
щито?
Oleg
щито?
Сори, vcs конечно же
🏳️ Phil
тогда вообще нифига не понял
Nikita
Ребята, а скиньте пожалуйста ссылку на статью где говорять/пишут что вендорить код для библиотек - плохо
тебе быстрее будет нагуглить эту статью самому, заодно и в чат скинеш =), а то я тоже нихрена не понял о чём вы
Oleg
тогда вообще нифига не понял
Завендорить - положить зависимости в систему контроля версий
Oleg
это я понял. я не понял остального
https://github.com/mattfarina/golang-broken-vendor
Nikita
Oleg
http://glide.readthedocs.io/en/latest/vendor/ > Recommendations > 1. Libraries (codebases without a main package) should not store outside packages in a vendor/ folder in their VCS unless they have a specific reason and understand why they're doing it. 2. In applications (codebases with a main package) there should only be one vendor/ directory at the top level of the codebase.
Oleg
Как раз по указаной выше причине есть такая рекомендация
Oleg
Ребята, кто как детектит такой случай nil? https://play.golang.org/p/M9fkzSIHCu
Slach
во втором случае ты сравниваешь строку со строкой... вот тут интресный момент , более опытные товарищи объясните почему interface {} !== nil ??? потому что тип другой??? правильно? и если заменить на *S в параметрах, то все уже станет ок? https://play.golang.org/p/TC3yraWP-_
Kirill
Ребята, кто как детектит такой случай nil? https://play.golang.org/p/M9fkzSIHCu
разве что достав значение и сравнив его https://play.golang.org/p/KLqSP2392N
Kirill
если, конечно, не танцевать с бубнами, unsafe, reflect и т.д.
Мерль
Ребята, кто как детектит такой случай nil? https://play.golang.org/p/M9fkzSIHCu
Только через каст типов ( Либо рефлексией можно Очередное подтверждение того, что пустой интерфейс - злоъ
Oleg
разве что достав значение и сравнив его https://play.golang.org/p/KLqSP2392N
Достать нельзя, потому что неизвестен тип
Oleg
> Очередное подтверждение того, что пустой интерфейс - злоъ В данном случае компилятор воспринимает (*S)(nil) тоже как значение. Поэтому check == nil всегда false, кроме случая test(nil) - https://play.golang.org/p/Vvs6PYzqnn
Kirill
Достать нельзя, потому что неизвестен тип
ну, как. можно с unsafe поиграть же. всегда все можно, если ты можешь получить ссылку на это
Kirill
unsafe вообще не гарантирован
не знаю, что ты этим хотел сказать, но при желании можно код с unsafe написать так, что он будет стабильным, как и написать без него код так, что все разлетаться будет периодически.
Oleg
https://golang.org/pkg/unsafe/ > Packages that import unsafe may be non-portable and are not protected by the Go 1 compatibility guidelines. Можно писать как угодно плохо. Я с этим я согласен )
Kirill
https://golang.org/pkg/unsafe/ > Packages that import unsafe may be non-portable and are not protected by the Go 1 compatibility guidelines. Можно писать как угодно плохо. Я с этим я согласен )
из unsafe тебе нужен только unsafe.Pointer, а на нем половина рантайма держится, значит его никто убирать не будет
Oleg
Ну я теоретизирую
Kirill
только я еще и на практике проверял такую магию
Oleg
Я тоже
Oleg
Мой вопрос был в том6 как кто проверяет указаный выше случай
Oleg
Хотел понять как именно
Мерль
> Очередное подтверждение того, что пустой интерфейс - злоъ В данном случае компилятор воспринимает (*S)(nil) тоже как значение. Поэтому check == nil всегда false, кроме случая test(nil) - https://play.golang.org/p/Vvs6PYzqnn
Можно скастовать тип nil для сравнения с интерфейсом check == (*S)(nil) Однако для этого тебе всё равно надо знать тип Вообще, я не очень понимаю в каком случае может быть нужна такая функция
Kirill
Мой вопрос был в том6 как кто проверяет указаный выше случай
могу тебе накидать хелпер, который на nil проверит. думаю, unsafe.Pointer хватит, чтобы это не зная тип реализовать
Oleg
В моем случае для ORM, в некоторых случаях значением может быть не примитивный тип(какой я не знаю), его нужно перегнать в json, и положить в jsonb(Postgres)
Kirill
и, по-моему, я где-то это уже делал
Мерль
Oleh
Посоветуйте логер
Billyfbrain
logrus, zap
Vladimir
+1 к zap