Как организовать слои в Go проекте?

Middle
757 просмотров
AFK Offer AI

Типичные слои в Clean Architecture Go-проекта: domain (сущности, интерфейсы, ошибки), usecase (бизнес-логика, оркестрация), delivery (HTTP/gRPC хендлеры, конвертеры), repository (реализации интерфейсов работы с данными). Каждый слой — отдельная папка внутри internal/. Правило зависимостей: delivery → usecase → domain ← repository. Domain ни от чего не зависит. Usecase зависит только от интерфейсов domain. Delivery и repository зависят и от domain (типы), и от usecase (через интерфейсы).

Следующий вопрос

Как сделать CLI приложение?