Size: a a a

2020 February 14

AS

Andrei 🦉 Sergeev in Go-go!
Ilya Kaznacheev
То есть предлагаешь и подключения к бд, и вообще всю сборку приложения в этом файле делать?
можно в этом файле, можно отдельно в своём модуле, а здесь просто импортировать одну фабрику, которая отдаст тебе готовое приложение
источник

AS

Andrei 🦉 Sergeev in Go-go!
но хендлеры можно назначить только в этой функции, да
источник

IK

Ilya Kaznacheev in Go-go!
Andrei 🦉 Sergeev
но хендлеры можно назначить только в этой функции, да
Так я же тогда, получается, только функции могу назначить хендлерами из импортироанного пакета, я не могу где-то инициализировать структуру всеми соединениями, и потом ее методы передать как хендлеры
источник

IK

Ilya Kaznacheev in Go-go!
Кроме как через глобальный скоуп пакета
источник

IK

Ilya Kaznacheev in Go-go!
Чего я не хочу
источник

AS

Andrei 🦉 Sergeev in Go-go!
Ilya Kaznacheev
Так я же тогда, получается, только функции могу назначить хендлерами из импортироанного пакета, я не могу где-то инициализировать структуру всеми соединениями, и потом ее методы передать как хендлеры
можешь
источник

AS

Andrei 🦉 Sergeev in Go-go!
главное что бы эти методы удовлетворяли интерфейсу
источник

AS

Andrei 🦉 Sergeev in Go-go!
мы так и делаем
источник

IK

Ilya Kaznacheev in Go-go!
Но как?
источник

IK

Ilya Kaznacheev in Go-go!
Я никак в толк не возьму
источник

AS

Andrei 🦉 Sergeev in Go-go!
в своём модуле
type MyCoolApp struct {

}

func(app *MyCoolApp) CoolHandler() {}

func NewMyCoolApp() *MyCoolApp {}


в configureAPI configure_*.go
app := NewMyCoolApp()

api.CoolHandler = app.CoolHandler
источник

IK

Ilya Kaznacheev in Go-go!
Andrei 🦉 Sergeev
в своём модуле
type MyCoolApp struct {

}

func(app *MyCoolApp) CoolHandler() {}

func NewMyCoolApp() *MyCoolApp {}


в configureAPI configure_*.go
app := NewMyCoolApp()

api.CoolHandler = app.CoolHandler
Так а как я туда все остальное прокину? Бд, конфиги
источник

IK

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

AS

Andrei 🦉 Sergeev in Go-go!
Ilya Kaznacheev
Так а как я туда все остальное прокину? Бд, конфиги
вот у тебя есть фабрика NewMyCoolApp(), ну так и используй её
источник

AS

Andrei 🦉 Sergeev in Go-go!
создай еще фабрик, для настройки всего на свете и просто дёргай их
источник

AS

Andrei 🦉 Sergeev in Go-go!
это ничем не отличается от запуска программы из main
источник

IK

Ilya Kaznacheev in Go-go!
Andrei 🦉 Sergeev
вот у тебя есть фабрика NewMyCoolApp(), ну так и используй её
То есть configure_*.go заменяет main.go
источник

AS

Andrei 🦉 Sergeev in Go-go!
Ilya Kaznacheev
То есть configure_*.go заменяет main.go
да
источник

IK

Ilya Kaznacheev in Go-go!
Хмм
источник

AS

Andrei 🦉 Sergeev in Go-go!
main там свой и его не надо трогать
источник