Гексагональная архитектура

Порты и адаптеры - подход, который позволяет построить более гибкую архитектуру, со слабой связанностью между слоями.

🧠Доменная модель - цифровая копия предметной области:

  • Самый слабо изменяемый слой.
  • Зависимость только в пределах своей доменной модели.
  • Может выступать композитом.

🏗️Слой Application - «чистые функции», оперирующие доменной моделью:

  • Средне изменяемый слой, закрывающий бизнес-сценарии.
  • Оперирование только собственным слоем или доменной моделью.
  • Основные зависимости DI через порты, которые реализуются в адаптерах.

🔌 Кухня адаптеров не видна за ее пределами

  • Самый изменяемый слой приложения.
  • Адаптеры реализуют функциональность портов уровня Domain или Application на уровне IN/OUT.
  • Адаптеры ничего не знают про другие адаптеры.

Что для себя отметил в этом типе архитектуры: 🌀Гибкость – разделение логики и инфраструктуры, упрощает тестируемость и ремонтопригодность. 🚀Производительность – дополнительный слой абстракции может влиять скорость в нагруженных системах. 🚪Порог входа – не просто разобраться в зависимостях на старте, порты и адаптеры увеличивают объем кода и требуют высокой дисциплины команды.

Вообще, данный вид архитектуры мне симпатизирует, но стоит понимать что нет серебряной пули и все зависит не только от зрелости команды, но и от размера проекта. Как известно, все проблемы разработки решаются введением нового уровня абстракции, но кто будет исправлять и это…😉😀 #dev #ddd #softwareengineering

Гексагональная архитектура | Сетка — социальная сеть от hh.ru