Size: a a a

2020 June 22

АЛ

Артем Лазаренко... in Go-go!
эт был сарказм
источник

GP

Georgy Perevozchikov in Go-go!
Daniel Podolsky
решить эту и создать несколько новых

не надо джунам давать в руки гибкие инструменты
А что в данном случае делать?
Сейчас они просто пишут 100500 контроллеров на perl доя mojolicious :-)
источник

E

Evgeny in Go-go!
Без контейнера, просто конструкторы и функция, которая делает
a := NewA() 
b := NewB(a)
...
источник

GP

Georgy Perevozchikov in Go-go!
А завтра им понадобится newC, D, E, F)
источник

E

Evgeny in Go-go!
Ну и прокинут.
источник

АЛ

Артем Лазаренко... in Go-go!
Evgeny
Без контейнера, просто конструкторы и функция, которая делает
a := NewA() 
b := NewB(a)
...
да ради бога, делай как душе угодно, только dig сам отслеживает зависимости, причем тут привычка джавистов если так реально удобнее
источник

GP

Georgy Perevozchikov in Go-go!
Быть может дать им graph ql и набор функций?
источник

E

Evgeny in Go-go!
Артем Лазаренко
да ради бога, делай как душе угодно, только dig сам отслеживает зависимости, причем тут привычка джавистов если так реально удобнее
Dig делает это в рантайме и о проблеме можно узнать только во время работы приложения. А в "ручном" коде проверка будет компайл-тайм.
источник

E

Evgeny in Go-go!
Можно, конечно, использовать wire гугловый, там кодогенерация, но вот он прям редко используется почему-то.
источник

ВС

Владимир Столяров... in Go-go!
потому что он сложный)
источник

D

Denis in Go-go!
Evgeny
Без контейнера, просто конструкторы и функция, которая делает
a := NewA() 
b := NewB(a)
...
а в функции init никак не инициализировать компонент?
источник

E

Evgeny in Go-go!
На лично моём опыте (несколько умеренно больших компаний + общался с людьми из крупных компаний) - почти все, поголовно, используют ручной код.
источник

E

Evgeny in Go-go!
Denis
а в функции init никак не инициализировать компонент?
Это уже глобальные переменные, очевидное зло.
источник

D

Denis in Go-go!
Evgeny
Это уже глобальные переменные, очевидное зло.
не глобальные а на уровне пакета обычная публичная переменная
источник

E

Evgeny in Go-go!
Единственный нормальный юзкейз init-функций - предзаполнить какой-нибудь массив констант или что-то такое. Всё остальное надо делать во время инжектов зависимостей и так далее.
источник

E

Evgeny in Go-go!
Потому что иначе будет адская боль с попыткой замокать, запустить лишний инстанс и так далее.
источник

E

Evgeny in Go-go!
Да кому я объясняю, "зло" внеконтекстных зависимостей очевидно практически любому, кто хоть сколько-то времени работал с серьезным кодом. Любая зависимость существует только в контексте и ломать его рамки - верный путь к смешению контекстов, что есть ад для поддержки.
источник

GP

Georgy Perevozchikov in Go-go!
Georgy Perevozchikov
Быть может дать им graph ql и набор функций?
Чем такой подход плох?
Сделать N осмысленных функций и пусть описывают схему в grapQl.
Если им нужна будет новая функция то пусть пишут новую и прокидывают в graph ql тот же.
источник

GP

Georgy Perevozchikov in Go-go!
И да это все через code rewiew и ci пропускать.
источник

GP

Georgy Perevozchikov in Go-go!
Любое изменение в предоставляемых в graph ql функциях.
источник