Що являє собою Clean Architecture?
Clean Architecture (Чиста архітектура) - це підхід до проєктування програмних систем, запропонований Робертом Мартіном (дядьком Бобом), де код будується у концентричних шарах, розділених за відповідальністю. Головна ідея - ізолювати бізнес-логіку від інфраструктури, щоб система була легко тестованою, змінюваною і незалежною від фреймворків.
Основний принцип
Залежності спрямовані всередину - тобто зовнішній код знає про внутрішній, але не навпаки. Бізнес-правила нічого не знають про базу, UI чи мережеві деталі.
Шари Clean Architecture
- Entities (Сутності)
- бізнес-моделі та правила, які ні від чого не залежать.
Приклад:
Order,Payment,Userз методамиvalidate(),calculateTotal().
- Use Cases / Interactors
- реалізують прикладну бізнес-логіку, визначають, що робити із сутностями.
Приклад:
CreateOrder,ProcessPayment.
- Interface Adapters
- шар, який адаптує дані між внутрішніми use case і зовнішнім світом (UI, API, БД). Приклад: контролери, презентери, репозиторії.
- Frameworks & Drivers (зовнішнє коло)
- конкретні технології: фреймворки, бази даних, веб-сервери, UI. Приклад: Django, Spring, PostgreSQL, REST API.
Переваги
- Незалежність від фреймворків і баз даних.
- Проста заміна інфраструктури (наприклад, SQL → NoSQL).
- Легке тестування бізнес-логіки без зовнішніх залежностей.
- Висока модульність і контроль над залежностями.
Схема
[ Frameworks/UI ]
↓
[ Interface Adapters ]
↓
[ Use Cases ]
↓
[ Entities ]Підсумок:
Clean Architecture розділяє код на незалежні шари з напрямком залежностей до бізнес-логіки. Це робить систему стійкою до технологічних змін і дозволяє розвивати її десятиліттями без переписування ядра.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.