Шестиугольная архитектура: надежное программное обеспечение с интерфейсами вместо слоев.
HappyCoders
0:00 / 0:00
Шестиугольная архитектура: надежное программное обеспечение с интерфейсами вместо слоев.
12 902 просмотра · 10 мес. назад
HappyCoders
1,88 тыс. подписчиков
12 902 просмотра · 10 мес. назад
Всем известна эта ситуация: чем старше и крупнее приложение, тем сложнее и дороже его расширять и поддерживать. Широко используемая многоуровневая архитектура недостаточна в качестве решения: прямые и косвенные зависимости от всех уровней к базе данных и другим компонентам инфраструктуры часто приводят к размыванию границ уровней и тесной связи технического и бизнес-кода.
Гексагональная архитектура ставит бизнес-логику в центр и изолирует технические детали за интерфейсами (портами) с помощью адаптеров. Это позволяет разрабатывать и тестировать бизнес- и технический код независимо друг от друга.
Начиная с целей программной архитектуры и критического анализа многоуровневой архитектуры, мы подробно рассмотрим гексагональную архитектуру. Вы узнаете, как правило зависимостей гарантирует отсутствие зависимостей от бизнес-кода к техническому коду — и как ядро приложения может по-прежнему получать доступ к инфраструктуре. Соответствует ли гексагональная архитектура целям программной архитектуры? Какие проблемы она создает? Чем она отличается от «луковой» и «чистой» архитектуры, и какие синергии возникают при сочетании с микросервисами и предметно-ориентированным проектированием?
Обладая новыми знаниями, вы сможете улучшить качество и долговечность своих программных проектов и быстрее реагировать на новые требования в будущем.
0:00 Что такое программная архитектура?
1:14 Какова цель программной архитектуры?
3:24 Почему многоуровневая архитектура так часто оказывается запутанной?
6:53 Какие цели поставил перед собой Алистер Кокберн для гексагональной архитектуры?
8:51 Как работает гексагональная архитектура?
10:35 Как работают порты и адаптеры на конкретном примере?
13:40 Что такое первичные и вторичные порты и адаптеры?
14:47 Как работает изоляция в коде?
16:11 Как ядро вызывает адаптер, не завися от него?
18:06 Что такое правило зависимостей?
18:41 Почему гексагональной архитектуре необходимо отображение?
24:06 Как тестировать гексагональную архитектуру?
26:40 Почему именно гексагон?
27:00 В чем разница между гексагональной архитектурой и портами и адаптерами?
28:35 Соответствует ли гексагональная архитектура целям программной архитектуры?
33:18 Когда гексагональная архитектура не стоит затраченных усилий?
👉 Ссылки и слайды
https://www.happycoders.eu/hex-arch-l...
👉 Все статьи серии:
Что такое гексагональная архитектура? https://www.happycoders.eu/software-c...
Шестиугольная архитектура с Java: https://www.happycoders.eu/software-c...
Добавление адаптера базы данных: https://www.happycoders.eu/software-c...
Шестиугольная архитектура с Quarkus: https://www.happycoders.eu/software-c...
Шестиугольная архитектура со Spring Boot: https://www.happycoders.eu/software-c...
👉 Репозиторий GitHub
https://github.com/SvenWoltmann/hexag...
👉 Интересуетесь регулярными советами экспертов по современному Java и углубленными знаниями JVM?
Подпишитесь на рассылку HappyCoders: https://www.happycoders.eu/newsletter/
👉 Обучение Java
https://www.happycoders.eu/java-train...
📩 Контакты
Форма обратной связи: https://www.happycoders.eu/contact/
Электронная почта: sven@happycoders.eu
(Автор: Свен Вольтманн)