Artem
где связь то?
snip
где связь то?
Качественный в го - говей и работает корректно
snip
Данный код работает корректно но не говэй и нет гарантий что он не поломается при новой версии го
snip
Вот и вся связь
Artem
ну первое, что такое go way? я знаю только про effective go, в котором только в 1 месте упоминается readable
snip
Простота и читабельность
snip
Есть ещё всякие факторы, но их немного
Artem
а можешь цитату скинуть или доклад какой-нибудь, мне интересно откуда все эти мысли пошли
snip
Есть выступление пайка почему го взлетел, вот там он примерно описывает как они это видят
snip
А вообще про говей и различные моменты почему в го так а не иначе много достаточно выступлений пайка
snip
Есть другие умные мужи пытающинся донести идеи го, но я не вспомню сейчас по памяти ссылок на доклады
Artem
почему так или иначе это одно, а почему такой код (которого полно в стдлиб) не go way, это другой вопрос
snip
А на счёт стдлиб там есть нехороший код, сейчас меньше, было больше и был прям откровенный говнокод, но что это меняет?
Artem
это какая-то двуличность, топим за одно, а делаем другое
Nikita
Илья
а то получается вот так
Илья
https://github.com/mailru/easyjson/blob/3fdea8d05856a0c8df22ed4bc71b3219245e4485/jlexer/bytestostr.go
David
Подскажите, пожалуйста, как работать с import’ами, если использую приватный репозиторий и разрабатываю в докере?
David
David
dep
Andrei 🦉
dep
https://github.com/golang/dep/blob/master/docs/FAQ.md#how-do-i-get-dep-to-consume-private-git-repos-using-a-github-token
David
Andrei 🦉
с любым гит репозиторием
Илья
dep
я просто руками указывал
[[override]]
name = "my_private_repo"
source = "ssh://git@my_private_repo.git"
branch = "master"
Илья
в Gopkg.lock
Илья
или constraint
Илья
тогда можно без токенов жить
David
Окей. Что если у меня есть приватный репозиторий с проектом, я хочу разрабатывать локально в докере и потом пушить в гит. Как подключать просто напросто соседние папки? Нужно подключаться все равно к приватному репозиторию?
Илья
Alexey
Ну, полетели: https://github.com/gosh-lang/gosh
David
саша
Го же сам по себе медленный, зачем на нем ещё интерпретатор другого языка писать?
Daniel
в каком смысле go медленный?
Alexey
Потому что скорость – не всё
Daniel
David
Daniel
вы чего хотите, собственно?
Илья
вопросов по го я не вижу
David
David
Я сделал реп для разработки, но проблема была, что пакеты было не понятно как подключать. Оказывается всегда нужно будет комитить в репозиторий, чтобы мог нормально писать код
David
Неужели нельзя настроить absolute path на root проекта и подключать от туда пакеты?
Artem
просто не нужно кодить в докере
Artem
блин. а мб тот слитый код аэрофлота на самом деле чья-то иде, парень просто кодил в докере?
Илья
Roman
Я переписал пункт 1.1.1. для лучшего понимания проблемы:
https://github.com/romshark/Go-2-Proposal---Immutability#111-ambiguous-code-and-dangerous-bugs
Daniel
invariance
Ребяты, есть return type у функции:*typeName, как мне конструкцию
execParams := getSpecParams()
return &execParams
упростить?
invariance
ну типо в одну строку сделать без лишней переменной
Andrei 🦉
вроде можно сделать
return &(getSpecParams())
Илья
нельзя
Илья
можно сделать функцию обертку, которая вернт typeName
Andrei 🦉
ну значит нельзя, это go way, страдай
.
.
.
.
Подскажите, в чем проблема? Структура имплементирует интерфейс, но при передачи ее в функцию которая принимает параметром этот интерефейс, выдает что нельзя так
.
Если передать не просто db, а указатель &db, то все ок
.
Почему так?
Aleksandr
Все верно, надо указатель передавать, если в сигнатуре интерфейс
.
.
Кстати вот есть репозиторий с методами обращения к БД
.
Кому тут правильнее указывать эти методы, указателю на репу, или просто репе?
.
типа
func (db Database) GetUserById(id int) (models.User, error)
или же
func (db *Database) GetUserById(id int) (models.User, error)
.
в данном случае менять никак не надо
Dk
Простите. Если я в пакете делаю func init() { var X int }, то экспортировать я X смогу или он в области видимости функции только?
Dk
Ну вот хочу в инициализации прочитать json в структуру, чтобы потом экспортировать эту структуру.
Dk
Объявить переменную внешне и анмаршалить по указателю?
Dk
Пасиб
Dk
Да-да, всё верно
Artem
Parent *User ?
Artem
да
Artem
без нее идет ошибка инициализации
он выделяет память на структуру, внутри такая же, опять выделяет, потом опять и так до конца памяти.
*User это 8 байт - фиксированный размер