Anatoly
Прост принтлайн легаси функция времен разработки языка, не используй её
Anatoly
fmt
Dmitry
напомните чем плох параметр в функции типа interface{} например так: func foo(data interface{})
Dmitry
плохо помню, вроде кто то говорил, что вызывается malloc в таких случаях
Anonymous
Konstantin
на интрефейсы расходуется больше памяти.
Anonymous
на интрефейсы расходуется больше памяти.
Больше, чем на что? И на сколько больше?
Konstantin
чем при явном указании типа. но все зависит от обстоятельств. где-то это не существенно, а где-то критично
Anonymous
Тест бы какой нибудь, что больше есть - прога с кодогенерацией или прога на интерфейсах, было бы интересно ознакомиться. А по поводу существенности - где существенно, пишу на C :)
Dmitry
смотрю дизассемблерные листинги и разницы не вижу. разница есть только при приведении типа, добавляется немного кода на проверку типа
Dmitry
если проблема только в приведении типов, то ок
Konstantin
go tool pprof 😄
Ivan
Привет! Никак не могу въехать в GOPATH, dep и как это совмещать с .gitlab-ci.yml. После maven, npm и прочего такого не выходит проникнуться го-шной идеей зависимостей.
Ivan
Как описать в проекте, что мне не нужен vendor, а хочу хранить зависимости где-то снаружи?
Anonymous
напомните чем плох параметр в функции типа interface{} например так: func foo(data interface{})
теряем проверку данных на этапе компиляции. те ситуаций когда прога может упасть в рантайме становится больше. считается антипаттерном, описано тут https://about.sourcegraph.com/go/idiomatic-go
Valentin
вообще лучше покажи свой файлик, мы тут не ванги
Oleg
Библиотека для отправки в google analytics. Вдруг кому пригодится - https://github.com/olebedev/go-gamp Написал потому что ничего внятного не смог найти, все то есть скрывает часть АПИ, предлагает свой вариант работы. Есть все кроме динамических параметров и batch
Anonymous
хотя поспешил )
Anonymous
где тесты?
Ivan
вообще лучше покажи свой файлик, мы тут не ванги
Решил взять dep для зависимостей, а он генерирует папку vendor в корне репозитория. Но мало этого, проект должен лежать в GOPATH/src/gitlab-domain/group/repo-name иначе пишет, что путь не в GOPATH. Пока две стадии test и build и приходится выворачиваться симлинками вот так: https://gist.github.com/diafour/4ec1cdef6fbfbd058f76c551a631b631
Oleg
где тесты?
Тесты гугл АПИ? Я не работаю в гугле
Oleg
ТЕстов нет, потому что это кодген
Anonymous
Тесты гугл АПИ? Я не работаю в гугле
ох лол ) напрасно я похвалил. знаешь, в проектах часто используются базы данных sql, nosql, люди не работают на них, но пишут тесты на свой код
Anonymous
Не напрасно, этого просто не нужно
кода довольно много, вероятность ошибки растет пропорционально кол-ву кода как известно ) поскольку библиотеку будут использовать другие проекты без возможности напрямую вносить фиксы, обычно требования к тестированию либы довольно высокие, так что имхо тесты маст хев
Oleg
ох лол ) напрасно я похвалил. знаешь, в проектах часто используются базы данных sql, nosql, люди не работают на них, но пишут тесты на свой код
Знаю, спасибо. еще раз, почти весь код сгенерирован go-swagger. Он тесты успешно проходит, можешь убедиться здесь - https://github.com/go-swagger/go-swagger То что написал я(37 строк на Go), тестов не требуетю Они там не нужны.
Anonymous
Вопросов в общем два - как сложить зависимости в какую-то внешнюю директорию, типа /home/gitlab-runner/gopath. И как собирать проект, если он не в GOPATH? Да уж, похоже можно без dep ;]
1. Добавить путь в GOPATH 2. Почему проект не в GOPATH? всё равно его можешь собрать, главное чтобы зависимости были доступны в GOPATH
Oleg
У меня уже есть такие, толку от них не много ,)
Anonymous
У меня уже есть такие, толку от них не много ,)
значит внимательность ок, у меня не оч, косячу налево и направо и тесты это ловят
Oleg
Я не про тесты, я про бэйджы
Anatoly
Кому-то шашечки, кому-то ехать)
Anonymous
Кому-то шашечки, кому-то ехать)
Хорошо ехать с шашечками!
Anatoly
Хорошо
Anonymous
при чем тут какие-то шашечки
Anonymous
я ни разу их не получал
Anonymous
но тесты пишу
Мерль
https://godoc.org/go.uber.org/fx
Ivan
1. Добавить путь в GOPATH 2. Почему проект не в GOPATH? всё равно его можешь собрать, главное чтобы зависимости были доступны в GOPATH
Проект не в GOPATH, потому что собирается из папки типа /home/gitlab-runner/builds/36081565/0/project_group/project_name. Добавить в GOPATH /home/gitlab-runner/builds ? Или всё-таки есть способ держать зависимости в отдельной директории, а собирать откуда угодно?
Ivan
Какая вообще концепция за GOPATH? Её же не просто так придумали, для чего она?
Anonymous
Какая вообще концепция за GOPATH? Её же не просто так придумали, для чего она?
Чтобы складывать туда свой код и все зависимости.
Мерль
Какая вообще концепция за GOPATH? Её же не просто так придумали, для чего она?
Её придумали потому было лень делать нормальный менеджер зависимостей
Мерль
Но ведь лучший код тот, что не был написан!
Именно Поэтому лучшая часть голанга так и не была написана (
Michael
забыл как программа называлась, но вроде была написана под CP/M так вот она продавалась за приличные $$ и позволяла переключаться между активной программой и системной программой для печати или какой-нибудь другой системной программой и вот размер этой программы был 0 байт, это был пустой батник
Michael
Michael
моё лицо когда получил $ за 0 байт
Мерль
[last news] Go slices are not dynamic arrays
Daniel
Боль :(
да лана. ну нет пока менеджера нормального - так и задачи его пока не требуют
Aleksei Melnik
++++
Pavel
а вроде есть же один нормальный?
Pavel
или я чет путаю. сам не пользовался
Daniel
сама идеология немного ущербная
Daniel
правда, не очень понятно, как сделать лучше
Мерль
dep и glide
Daniel
глайд - очень странное поделие. я дочитал до способа установки и бросил
Daniel
dep - не менеджер пакетов вообще
Pavel
brew install glide
Pavel
и все
Aleksandr
brew install glide
отлично. т.е. надо еще ось отедльно ставить
Daniel
это у меня
Aleksandr
впрочем и под линь было просто curl .. & mv /usr/local/bin && chmod +x стандартно в общем
Daniel
ваши представления о стандартах удивляют меня
Pavel
вот и я о том
Мерль