Перейти к содержимому

Шестиугольная архитектура: надежное программное обеспечение с интерфейсами вместо слоев.

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 (Автор: Свен Вольтманн)