да возможно горутинах и/или api сервере
на мой взгляд, целесообразней руками прокидывать переменную handler туда, куда нужно, иначе получаем ту же проблему что и с глобальными переменными.
вроде в глобальной точке доступа к базе нет ничего плохого
с точки зрения той же Clean Architecture есть, и с тестированием не все гладко, да
Упрощенно: func main() { db := storage.New() srv := service.New(db) srv.Run() } storage.New соответственно вызывается только в 1 месте.
мне не нравилось что нужно тащить постоянно с собой db через все методы
Есть свои плюсы и минусы. С синглтоном как по мне система становится менее управляемой, и ее сложнее поддерживать. У него те же проблемы, что и у глобальных переменных по сути.
глобалки это зло тестировать сложно
Обсуждают сегодня