Гексагональная архитектура (Hexagonal Architecture) — это способ организации кода в проекте,
чтобы логика приложения была независимой от внешних систем, таких как базы данных,
API или пользовательские интерфейсы.
Этот подход делает код проще для тестирования, расширения и поддержки.
Основная идея
В гексагональной архитектуре весь проект делится на три основных части:
Основная логика (Core):
Здесь сосредоточены все "мозги" приложения — бизнес-логика, правила и процессы.
Эта часть ничего не знает о том, как хранятся данные или каким образом пользователь
взаимодействует с приложением.
Порты (Ports):
Это интерфейсы, которые описывают, что нужно основной логике.
Например, "сохранить данные книги" или "получить данные о пользователе".
Но порты не говорят, как именно это делается.
Адаптеры (Adapters):
Это "переходники", которые реализуют порты.
Они связывают основную логику с конкретными технологиями,
например:
- Работа с базой данных через JPA.
- Отправка HTTP-запросов к внешнему API.
- Обработка запросов от веб-клиента.
Ссылки:
wiki
author blog about Hexagonal architecture
Clean architecture book.
мне понравилось это видео: Гексагональная архитектура и микросервисы
Для большего кол-ва инфы можно чат гпт по расспрашивать на эту тему
и поискать другие статьи самостоятельно.
P.S. Недавно встретил эту архитектуру, странно как она так проходила мимо меня,
решил поделится, потому что на JR про нее не нашел статей, выкатил кусочек,
чисто ради того что бы было упоминание на эту тему,
и о ней не узнали в какой нибудь последний момент :)
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ