Skip to main content

Що являє собою Clean Architecture?

Clean Architecture (Чиста архітектура) - це підхід до проєктування програмних систем, запропонований Робертом Мартіном (дядьком Бобом), де код будується у концентричних шарах, розділених за відповідальністю. Головна ідея - ізолювати бізнес-логіку від інфраструктури, щоб система була легко тестованою, змінюваною і незалежною від фреймворків.


Основний принцип

Залежності спрямовані всередину - тобто зовнішній код знає про внутрішній, але не навпаки. Бізнес-правила нічого не знають про базу, UI чи мережеві деталі.


Шари Clean Architecture

  1. Entities (Сутності)
  • бізнес-моделі та правила, які ні від чого не залежать. Приклад: Order, Payment, User з методами validate(), calculateTotal().
  1. Use Cases / Interactors
  • реалізують прикладну бізнес-логіку, визначають, що робити із сутностями. Приклад: CreateOrder, ProcessPayment.
  1. Interface Adapters
  • шар, який адаптує дані між внутрішніми use case і зовнішнім світом (UI, API, БД). Приклад: контролери, презентери, репозиторії.
  1. Frameworks & Drivers (зовнішнє коло)
  • конкретні технології: фреймворки, бази даних, веб-сервери, UI. Приклад: Django, Spring, PostgreSQL, REST API.

Переваги

  • Незалежність від фреймворків і баз даних.
  • Проста заміна інфраструктури (наприклад, SQL → NoSQL).
  • Легке тестування бізнес-логіки без зовнішніх залежностей.
  • Висока модульність і контроль над залежностями.

Схема

javascript
[ Frameworks/UI ] [ Interface Adapters ] [ Use Cases ] [ Entities ]

Підсумок:

Clean Architecture розділяє код на незалежні шари з напрямком залежностей до бізнес-логіки. Це робить систему стійкою до технологічних змін і дозволяє розвивати її десятиліттями без переписування ядра.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.