Hexagonal Architecture

Гексагональная архитектура: порты, адаптеры и тестируемость

Уровень: Продвинутый · около 4 ч · после курса: Разложишь приложение на порты и адаптеры и протестируешь логику без базы и HTTP

Чему научишься

  • Разделить приложение на домен, порты и адаптеры
  • Писать use case вместо «толстых сервисов»
  • Держать зависимости направленными внутрь, к домену
  • Не пускать внешние структуры в домен через DTO и маппинг
  • Тестировать логику без базы данных и HTTP
  • Делать HTTP-обработчик тонким слоем над use case

Уроки курса (8)

Модуль 1 · Концепция гексагона

Зачем нужна Hexagonal, что такое порты и use cases

  1. Гексагональная архитектура: зачем она нужна - Слои и границы, чтобы код не расползался
  2. Ports & Adapters: порты, адаптеры и что куда зависим - Домен в центре, инфраструктура по краям
  3. Use Case: сценарии вместо «толстых сервисов» - Делаем логику тестируемой

Модуль 2 · Слои и тестируемость

DTO, репозитории, как тестировать use-case без БД

  1. DTO и маппинг: не пускаем внешний мир в домен - HTTP/DB форматы отдельно, домен отдельно
  2. Репозитории и интерфейсы: где им жить - Интерфейсы ближе к домену, реализации ближе к DB
  3. Тестирование use-case без базы данных - Фейки и моки: тестируем use case без базы и HTTP

Модуль 3 · Адаптеры и проект

HTTP-адаптер как тонкий слой и финальный Tasks API

  1. HTTP адаптер: handler/controller как тонкий слой - Контроллер не должен быть бизнес‑мозгом
  2. Мини‑проект: Tasks API в hex стиле (Go + PHP) - Скелет реального приложения