Size: a a a

Golang Developers — русскоговорящее сообщество

2021 May 20

FL

First Last in Golang Developers — русскоговорящее сообщество
И каждый раз инициализировать ее? А если нет возможности это делать?
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
через NewService(repositoryInjected)

type Service struct{repo: repositoryInjected}
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
инициализация идет один раз в мейне, во время старта
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
а потом раскидывается уже куда вам нужно прокинуть
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
по сути это синглот паттерн
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
синглтон
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Тогда эти "вещи" (куда прокидывается) должны уметь сохранять в себе.
Будь то просто функция которая возвращает функцию или структура, которая к себе засунет

Этот подход?
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
если под сохранять в себе вы имеете ввиду отдельную переменную в структуре которая будет держать ссылку на репу - то да
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Окей, вариант.
А еще есть?
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
других нормальный вариантов я не знаю
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
так или иначе вы придете к DI
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Здесь речь не про DI
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
тогда видимо я неправильно понял что вам нужно
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Вот есть сервис который в рантайме накапливает данные.
В лоб можно сделать глобальную переменную в модуле который накапливает и просто использовать это.

А если не хочеться такого? И при этом не хочу в каждом месте делать hof или что-то типа такого
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
что такое hof ?
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
func Foo(service *service.SomeService) func() {
 return func() {
   service.DoSomething()
 }
}
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
ну и ок, это тоже DI
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Да, я не спорю, но выше спросил есть ли еще адекватные варианты
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
а я вам ответил что таких не знаю и все равно у вас будет DI :) другого пока что не придумали
источник

FL

First Last in Golang Developers — русскоговорящее сообщество
Боюсь, что с таким подходом я приду к callback hell :(
источник