Size: a a a

2020 June 06

М

Михаил in Go-go!
Ребя, подскажите что посмотреть про DI в go, а если не DI то как проблемы зависимостей решаеются в go? Сейчас смотрю лекцию Dependency injection in Go / Дмитрий Дорогин (ozon.ru), но интересно насколько это общепринятый подход. Спасибо.
источник

VL

V L in Go-go!
Михаил
Ребя, подскажите что посмотреть про DI в go, а если не DI то как проблемы зависимостей решаеются в go? Сейчас смотрю лекцию Dependency injection in Go / Дмитрий Дорогин (ozon.ru), но интересно насколько это общепринятый подход. Спасибо.
В проекте wire, всем доволен
источник

OJ

O . J in Go-go!
Михаил
Ребя, подскажите что посмотреть про DI в go, а если не DI то как проблемы зависимостей решаеются в go? Сейчас смотрю лекцию Dependency injection in Go / Дмитрий Дорогин (ozon.ru), но интересно насколько это общепринятый подход. Спасибо.
Как правило правильный подход это тот который принят у вас в компании.
источник

М

Михаил in Go-go!
O . J
Как правило правильный подход это тот который принят у вас в компании.
Я только присматриваюсь к го. Решил написать простенький парсер. После спринга вопрос про DI возникает одним из первых. Но, на самом деле, я не знаю насколько это хорошая идея и, может быть, в го приняты какие-то другие способы решения подобных проблем.
источник

М

Михаил in Go-go!
V L
В проекте wire, всем доволен
спасибо. буду смотреть.
источник

DP

Daniel Podolsky in Go-go!
Михаил
Я только присматриваюсь к го. Решил написать простенький парсер. После спринга вопрос про DI возникает одним из первых. Но, на самом деле, я не знаю насколько это хорошая идея и, может быть, в го приняты какие-то другие способы решения подобных проблем.
ничего и близко похожего на спринг у нас нет. это и хорошо, и плохо

но раз нет спринга - нет и необходимости его обходить с помощью DI.

обычно все, что надо, можно передать туда, куда надо, не особо задумавшись, как это сделать
источник

М

Михаил in Go-go!
Daniel Podolsky
ничего и близко похожего на спринг у нас нет. это и хорошо, и плохо

но раз нет спринга - нет и необходимости его обходить с помощью DI.

обычно все, что надо, можно передать туда, куда надо, не особо задумавшись, как это сделать
А вы бы не могли тыкнуть ссылкой в какую нибудь статью где описывается решение какой-то такой задачи. Скажем мне нужен объект логгирования, как мне его распространить везде-везде? Не передавать же как аргумент?
источник

d

dmitri💡 in Go-go!
я вот вообще не сильно понимаю зачем людям DI, всегда руками обхожусь
источник

ЛА

Локоть Анатолий... in Go-go!
Михаил
Ребя, подскажите что посмотреть про DI в go, а если не DI то как проблемы зависимостей решаеются в go? Сейчас смотрю лекцию Dependency injection in Go / Дмитрий Дорогин (ozon.ru), но интересно насколько это общепринятый подход. Спасибо.
источник

М

Михаил in Go-go!
Супер. Спасибо! Пойду читать.
источник

d

dmitri💡 in Go-go!
мне кажется не совсем корректно переводить это в другую плоскость
источник

DP

Daniel Podolsky in Go-go!
Михаил
А вы бы не могли тыкнуть ссылкой в какую нибудь статью где описывается решение какой-то такой задачи. Скажем мне нужен объект логгирования, как мне его распространить везде-везде? Не передавать же как аргумент?
честно сказать - такой статьи не видел пока

все популярные логгеры используют синглтон

коннект к базе принято передавать везде, часто - замыканием

ну и так далее
источник

VL

V L in Go-go!
Михаил
А вы бы не могли тыкнуть ссылкой в какую нибудь статью где описывается решение какой-то такой задачи. Скажем мне нужен объект логгирования, как мне его распространить везде-везде? Не передавать же как аргумент?
Почему бы и нет? NewSmth(logger) или smth.WithLogger
источник

М

Михаил in Go-go!
Daniel Podolsky
честно сказать - такой статьи не видел пока

все популярные логгеры используют синглтон

коннект к базе принято передавать везде, часто - замыканием

ну и так далее
Понял. Я ни в коем случаи не топлю за спринговое автосвязывание, а хочу написать что-то относительно простое, при этом использовать самые стандартные подходы принятые в го. Вот их и ищу. Спасибо.
источник

М

Михаил in Go-go!
dmitri💡
мне кажется не совсем корректно переводить это в другую плоскость
В выступление хорошо раскрывается тема зачем вообще нужен DI контейнер, но я ни в коем случаи не топлю за использование этого подхода.
источник

E

Edgar in Go-go!
Михаил
А вы бы не могли тыкнуть ссылкой в какую нибудь статью где описывается решение какой-то такой задачи. Скажем мне нужен объект логгирования, как мне его распространить везде-везде? Не передавать же как аргумент?
Эм, передать параметром в инстанс объекта и он будет его юзать?
источник

DP

Daniel Podolsky in Go-go!
dmitri💡
я вот вообще не сильно понимаю зачем людям DI, всегда руками обхожусь
ну вот смотрите

у вас фреймворк. и ваше программирование сводится к написанию собственно бизнес-логики, которая к фреймворку подключается через фиксированный API.

то есть, если фреймворк вам чего-то, без чего ваша логика не работает, не выдает через это api - вам надо его как-то получить в обход.

техник несколько, но DI - одна из самых разумных.

у нас нет фреймворков - нет и проблемы
источник

E

Edgar in Go-go!
То есть, сделать его полем объекта
источник

VL

V L in Go-go!
Go про явность и простоту, если что-то используется, то хорошо когда понятно откуда оно взялось.
источник

IK

Ilya Kaznacheev in Go-go!
Михаил
Ребя, подскажите что посмотреть про DI в go, а если не DI то как проблемы зависимостей решаеются в go? Сейчас смотрю лекцию Dependency injection in Go / Дмитрий Дорогин (ozon.ru), но интересно насколько это общепринятый подход. Спасибо.
Все руками собираем в main.go, дальше интерфейсами идёт куда надо. Полет нормальный
источник