Hexagonal (Ports and Adapters) в Go.

Ответ

Ядро приложения (домен + use cases) не зависит от внешнего мира. Порты - интерфейсы (входящие: API, входящие сообщения; исходящие: репозиторий, внешние API). Адаптеры реализуют порты: HTTP handler, gRPC server, PostgreSQL репозиторий, HTTP-клиент к другому сервису. В Go порты в пакете domain или app; адаптеры в отдельных пакетах (adapters/http, adapters/postgres). Тестирование ядра с моками адаптеров.

type UserPort interface { GetByID(ctx context.Context, id int64) (*User, error) }
type UserRepositoryPort interface { FindByID(ctx context.Context, id int64) (*User, error) }
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.