делать.
Cделать отдельный инициализатор для каждого сервиса и инициализировать его отдельно, или засунуть все в одну структуру "сервисы" и потом одну ее вызывать?
func NewServices(deps Deps) *Services {
schoolsService := NewSchoolsService(deps.Repos.Schools, deps.Cache, deps.CacheTTL)
emailsService := NewEmailsService(deps.EmailSender, deps.EmailConfig, *schoolsService, deps.Cache)
...
Или
userService := service.NewUserService(dao)
answerService := service.NewAnswerService(dao)
Заранее спасибо =)
конечно зависит от масштаба, может быть что все сервисы лежат в файле services.go но вообще, вообще, надо делать так, чтобы сервис шифрования пароля пользователя лежат максимально близко и к пользователю и ко всей логике, где шифруется... назовем такого рода пакет auth auth/ user.go role.go handler_register.go handler_confirm.go handler_reset.go handler_login.go // эти можно в service.go объединить tokenizer.go sender.go
Принял. А интерфейсы хранить в отдельном файле, или на слое, где они будут использоваться?
лучше рядом, вплоть до нахождения в одном файле
Ровно под этот вопрос сделана uber.fx Решение спорное, но - изучите, может зайти, а нет, так на мысли наведет
Вот я сколько не пробовал таким шаблоном пилить (всё в одном пакете) - всегда приходил к тому, что приходилось подпакеты делать.. и уже переставало выглядить так красиво
дело не в красиво, а в границах и дроблении стейта-логики: - режем на поменьшее по возможности - все что связано — держим вместе
Хм.. тем не менее, может я overengineering делаю.. что-то кроме версионирования api имеет смысл в отдельные подпакеты выносить? (вернее, может ли понадобиться такая необходимость?)
ты только что изобрел сервис локатор
У вас есть пример полного проекта? Что-то смотрю и сообразить не могу, как-то все перемешано Что в пакете auth делает role? Будет ли существовать отдельный пакет role? Какая логика выделения пакетов?
Вам не надо смотреть чужие проекты, вам надо плясать от своих требований и задач
чтобы самому плясать, нужна насмотренность, чтобы было от чего плясать
Обсуждают сегодня