В последние годы многие компании начали применять подход Чистой архит…
Kaan Baytan
В последние годы многие компании начали применять подход Чистой архитектуры по очень простой причине: поддерживать чистоту ядра бизнеса и защищать его от технологического хаоса.
### 1. Домен (сущности)
Здесь кроется чистейшая логика бизнеса:
- Сущности
- Объекты значений/записи
- Деловые правила
Нет ни структуры, ни базы данных. Есть только бизнес-правила, которые ни в коем случае нельзя нарушать.
### 2. Варианты использования
Это уровень, на котором выполняются операции в системе:
- Варианты использования
- Оркестровка потока
- Процесс валидации
Это та часть, которая решает, что произойдет, когда пользователь что-то делает.
### 3. Адаптеры интерфейса
Это слой, преобразующий внешний мир в форму, понятную внутренней системе:
- Контроллеры
- DTO/картографы
- Порты и адаптеры
- Интерфейсы репозитория
Этот уровень действует как своего рода "интерпретатор" между бизнес-логикой и технологиями, которые мы используем.
### 4. Фреймворки и драйверы
Это самый внешний слой, и здесь расположены технологические детали:
- ОТДЫХ API
- ОРМ
- Базы данных
- Очереди сообщений
- Рамки
Даже если завтра вы перейдете с MySQL на MongoDB или Spring на NestJS, уровни Домен и Сценарий использования даже не узнают об этом.
### Но насколько это похоже на шестиугольную архитектуру?
Их можно считать очень близкими архитектурами.
- Чистая архитектура построена на большем количестве колец.
- Шестиугольная архитектура более четко использует подход Порты и адаптеры.
Но основная идея почти та же:
- Отделение бизнес-логики от технологии.
- Снижение технологических зависимостей
- Создание более легко тестируемого программного обеспечения.
- Упрощать обслуживание и развитие системы.
#CleanArchitecture #SoftwareArchitecture #HexagonalArchitecture #DomainDrivenDesign #DDD #BackendDevelopment #SoftwareEngineering #SystemDesign #CleanCode #SOLID #UseCase #DomainLayer #PortsAndAdapters #Microservices #ModularMonolith #Backend #Programming #Developer #CodeQuality #MaintainableCode