Hexagonal Architecture
Гексагональная архитектура: порты, адаптеры и тестируемость
Уровень: Продвинутый · около 4 ч · после курса: Разложишь приложение на порты и адаптеры и протестируешь логику без базы и HTTP
Чему научишься
- Разделить приложение на домен, порты и адаптеры
- Писать use case вместо «толстых сервисов»
- Держать зависимости направленными внутрь, к домену
- Не пускать внешние структуры в домен через DTO и маппинг
- Тестировать логику без базы данных и HTTP
- Делать HTTP-обработчик тонким слоем над use case
Уроки курса (8)
Модуль 1 · Концепция гексагона
Зачем нужна Hexagonal, что такое порты и use cases
- Гексагональная архитектура: зачем она нужна - Слои и границы, чтобы код не расползался
- Ports & Adapters: порты, адаптеры и что куда зависим - Домен в центре, инфраструктура по краям
- Use Case: сценарии вместо «толстых сервисов» - Делаем логику тестируемой
Модуль 2 · Слои и тестируемость
DTO, репозитории, как тестировать use-case без БД
- DTO и маппинг: не пускаем внешний мир в домен - HTTP/DB форматы отдельно, домен отдельно
- Репозитории и интерфейсы: где им жить - Интерфейсы ближе к домену, реализации ближе к DB
- Тестирование use-case без базы данных - Фейки и моки: тестируем use case без базы и HTTP
Модуль 3 · Адаптеры и проект
HTTP-адаптер как тонкий слой и финальный Tasks API
- HTTP адаптер: handler/controller как тонкий слой - Контроллер не должен быть бизнес‑мозгом
- Мини‑проект: Tasks API в hex стиле (Go + PHP) - Скелет реального приложения