Size: a a a

2020 April 21

EK

Eduard Korolev in Go-go!
я хочу пул объектов один раз в main настроить, а потом из любого пакета дергать - дай мне конфиг, вот пожалуйста, дай мне бд - вот пожалуйста
источник

а

а кто это in Go-go!
произошел DI контейнер
источник

IK

Ilya Kaznacheev in Go-go!
Переслано от Ilya Kaznacheev
Ну ты можешь по-дедовски прокинуть через глобальные переменные
источник

IK

Ilya Kaznacheev in Go-go!
Переслано от Ilya Kaznacheev
Но удачи в юнит-тестах тогда
источник

EK

Eduard Korolev in Go-go!
чтобы был DI контейнер, если объект еще ни разу создан не был, то создать и вернуть, а иначе вернуть просто
источник

IK

Ilya Kaznacheev in Go-go!
Eduard Korolev
чтобы был DI контейнер, если объект еще ни разу создан не был, то создать и вернуть, а иначе вернуть просто
Ты не из джавы пришел, случайно?
источник

EK

Eduard Korolev in Go-go!
нет, из php
источник

IK

Ilya Kaznacheev in Go-go!
Ну короче в го не особо принято где-то неявно состояние держать
источник

EK

Eduard Korolev in Go-go!
sql пакеты так работают
источник

EK

Eduard Korolev in Go-go!
ты sql импортишь и импортишь либы для работы с бд, она в sql свой драйвер регистрирует
источник

IK

Ilya Kaznacheev in Go-go!
В main создаешь подключение к бд, возможно какие-то архитектурные обертки для него, а потом передаешь в свои классы хендлеры, потом эти хендлеры в роутинг засовываешь, а потом стартуешь сервер
источник

IK

Ilya Kaznacheev in Go-go!
Eduard Korolev
ты sql импортишь и импортишь либы для работы с бд, она в sql свой драйвер регистрирует
Так это не то же самое, что подключение
источник

IK

Ilya Kaznacheev in Go-go!
Драйвер - это конфигурация системы, а подключение - сущность, имеющая состояние
источник

EK

Eduard Korolev in Go-go!
Ilya Kaznacheev
В main создаешь подключение к бд, возможно какие-то архитектурные обертки для него, а потом передаешь в свои классы хендлеры, потом эти хендлеры в роутинг засовываешь, а потом стартуешь сервер
в этом и проблема, не хочу так делать
источник

IK

Ilya Kaznacheev in Go-go!
Eduard Korolev
в этом и проблема, не хочу так делать
Тогда советую не писать на го
источник

IK

Ilya Kaznacheev in Go-go!
Но если все-таки невмоготу, погугли DI контейнеры для го
источник

а

а кто это in Go-go!
Eduard Korolev
в этом и проблема, не хочу так делать
почему?
источник

EK

Eduard Korolev in Go-go!
потому что тогда вызов r.HandleFunc("/", middleware.Authorize(appHandlers.HelloHandler)) превратиться в ад
источник

EK

Eduard Korolev in Go-go!
а если там будет 10 миддлеваров и у каждого надо коннекшен передать?
источник

а

а кто это in Go-go!
так для миддваров обычно есть .Use и alice
источник