Size: a a a

Software Design/Architecture/Zen

2021 May 10

R

Roman in Software Design/Architecture/Zen
Там не было сказано "DI в Go неоч, если проект маленький")
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Я не видал больших проектов на Go.
Появлятся большой проект и хочется воткнуть DI - разноси по <микро сами знаете что>
источник

SZ

Sergey Zolotov in Software Design/Architecture/Zen
а как это поможет? там во время компиляции подмена идет?
источник

SZ

Sergey Zolotov in Software Design/Architecture/Zen
кубер, докер, прометеусы и пошло поехало? я про исходники
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Не, в рантайме можно вертеть как хочешь.
источник

R

Roman in Software Design/Architecture/Zen
"микро-сами-знаете-что" — это тип связи двух сервисов. Разницы нет никакой, будет связь внутри одного процесса, или на разных машинах, если они написаны на одном языке
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
"DI в го — фигня"

Это мнение которое в целом легко по коммьюнити собирается, глянь тот же wire от гугла. Он как бы есть, но вроде как особо и не собирается развиваться/поддерживаться
источник

R

Roman in Software Design/Architecture/Zen
Здесь скорее вопрос компетенций. Не все понимают, что такое DI и зачем он
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
В тех же k8s'ах не стесняются скипать unit-тесты, в угоду интеграционным. Инстанцируя при этом неявные зависимости
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Т.е. люди не хотящие DI в Go - некомпетентны?
источник

R

Roman in Software Design/Architecture/Zen
Зависит от причины
источник

SZ

Sergey Zolotov in Software Design/Architecture/Zen
в k8s контейнер собирается просто вручную, а не через фреймворки. но он есть

https://github.com/kubernetes/kubernetes/blob/master/pkg/controlplane/controller.go#L88 вот например для создания передается список зависимостей

https://github.com/kubernetes/kubernetes/blob/20b0f6b2a6ab9b1f0df821044150539ffc2c5503/pkg/controlplane/instance.go#L545 вот в него все по цепочке вниз передается

так что заявление что DI не юзается как-то не очень валидно
источник

SF

Segmentation Fault in Software Design/Architecture/Zen
Большинство путают DI и DC
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Как-то я там не вижу DI контейнера. Принци DI - соблюдается, да
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Не в курсе что за DC. DI & IoC & Service locator  путают, да
источник

SZ

Sergey Zolotov in Software Design/Architecture/Zen
как и в целом идея втаскивать DI в Go

дай определение тогда что такое DI в Go, и откуда тут взялся DI контейнер
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
В общем-то мы про разное, я именно про отсутвие DI-контейнера, а не про DI как такового
источник

R

Roman in Software Design/Architecture/Zen
DI как принцип и DI контейнер — это вообще разные вещи же
источник

R

Roman in Software Design/Architecture/Zen
Как можно одно называть другим?
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Речь в статье про именно про di-контейнер, как и дальнейшее обсуждение
источник