#exp #gex #arch
Я столкнулся с Гексагональной архитектурой не так давно. Однако, этот паттерн проектирования архитектуры приложений настолько сильно захватил мои мысли, что теперь, работая над чужим ПО, я думаю "Какого 🤬🤬🤬 тут нет гексагоналки?!" 😅
❓Что такое Гексагональная архитектура?
#️⃣ Гексагональная архитектура - это паттерн проектирования, который был представлен Алистером Кокберном в 2005 году.
❓ Зачем нужен этот паттерн?
Гексагональная архитектура позволяет решить следующие проблемы:
1️⃣ Во-первых, проблему невозможности протестировать систему из-за модулей, зависящих от деталей других модулей;
2️⃣ Во-вторых, проблему перехода от одного технического решения к другому. Например, переход на другую СУБД, фреймворк и даже язык программирования;
3️⃣ В-третьих, проблему переиспользования модулей внутри одной или нескольких программ.
Сам же Алистер описывает задачу паттерна следующим образом:
Далее я хочу подробнее рассказать о данном паттерне и начну с описания слоев приложения.
Я столкнулся с Гексагональной архитектурой не так давно. Однако, этот паттерн проектирования архитектуры приложений настолько сильно захватил мои мысли, что теперь, работая над чужим ПО, я думаю "Какого 🤬🤬🤬 тут нет гексагоналки?!" 😅
❓Что такое Гексагональная архитектура?
#️⃣ Гексагональная архитектура - это паттерн проектирования, который был представлен Алистером Кокберном в 2005 году.
❓ Зачем нужен этот паттерн?
Гексагональная архитектура позволяет решить следующие проблемы:
1️⃣ Во-первых, проблему невозможности протестировать систему из-за модулей, зависящих от деталей других модулей;
2️⃣ Во-вторых, проблему перехода от одного технического решения к другому. Например, переход на другую СУБД, фреймворк и даже язык программирования;
3️⃣ В-третьих, проблему переиспользования модулей внутри одной или нескольких программ.
Сам же Алистер описывает задачу паттерна следующим образом:
"Добиться, чтобы приложение в равной степени могло управляться пользователями, программами, автоматизированными тестовыми или пакетными сценариями, а также разрабатываться и тестироваться в изоляции от устройств и баз данных, на которых оно впоследствии будет выполняться."
Алистер Кокберн.
Далее я хочу подробнее рассказать о данном паттерне и начну с описания слоев приложения.
👍7🤔5
#arch #gex #exp
Что такое слои приложения, и зачем они нужны?
#️⃣ Слой - это некоторая область вашего приложения, которая инкапсулирует функционал части системы.
Идея разделить программу на слои - это не что-то новое. Программисты занимались этим задолго до гексагоналки. Однако, общепринятого "эталона" не было.
Тогда на свет пришла гексагоналка со своими стандартными слоями. А именно:
1️⃣ Слой доменов - тут мы можем расположить базовые сущности нашего приложения. А также модули, реализующие бизнес-логику приложения.
2️⃣ Слой приложения - в данном слое расположены ваши Use Cases. Это некие агрегаторы, которые вызывают несколько разных модулей.
3️⃣ Слой представления - здесь находятся ваши контроллеры, cli команды, страницы сайта и т.п.
4️⃣ Слой инфраструктуры содержит любые модули (адаптеры) для внешних систем (БД, Интеграции и т.п.).
Далее я расскажу о каждом слое более подробно.
Что такое слои приложения, и зачем они нужны?
#️⃣ Слой - это некоторая область вашего приложения, которая инкапсулирует функционал части системы.
Идея разделить программу на слои - это не что-то новое. Программисты занимались этим задолго до гексагоналки. Однако, общепринятого "эталона" не было.
Тогда на свет пришла гексагоналка со своими стандартными слоями. А именно:
1️⃣ Слой доменов - тут мы можем расположить базовые сущности нашего приложения. А также модули, реализующие бизнес-логику приложения.
2️⃣ Слой приложения - в данном слое расположены ваши Use Cases. Это некие агрегаторы, которые вызывают несколько разных модулей.
3️⃣ Слой представления - здесь находятся ваши контроллеры, cli команды, страницы сайта и т.п.
4️⃣ Слой инфраструктуры содержит любые модули (адаптеры) для внешних систем (БД, Интеграции и т.п.).
Далее я расскажу о каждом слое более подробно.
👍7🔥2