Что может/должно быть в пакете pkg?
Я начинающий Go Dev, изучаю гошку и привязанные к ней технологии бека уже около года. Честно сказать до сих пор не могу найти действительно рабочий вариант архитектуры микросервиса, все пишут по разному, по разному распределяют пакеты сервиса. Где то недавно вычитал что в основном структура микросервиса на го состоит в основном из entity, adapter, handler и usecase, так ли это? И конечно без моего внимания не остается крайний главный вопрос, что должно быть в pkg? Логгер? Пул конекты к дб? Конфиг? Дто, кастомные ошибки, миграции? Что туда можно кидать, как можно использовать этот пакет в удобных для себя целях?
Ответы (1 шт):
Директория pkg
предназначена для внутренних переиспользуемых библиотек в рамках одного проекта. В современной разработке на Go такой подход считается устаревшим и не рекомендован для новых проектов, так как создает избыточную вложенность. Более предпочтительным является использование плоской структуры проекта в сочетании с внешними модулями, которые подключаются через файл go.mod
с помощью ключевого слова require
.