DevPrep

Все темы › Архитектура программного обеспечения

Что такое Clean Architecture и Dependency Rule?

Senior PRO

Суть

Clean Architecture (Роберт Мартин) — способ организовать код в концентрические слои, где в центре бизнес-правила, а снаружи — детали:

  1. Entities — модели и правила предметной области (Account, Money).
  2. Use Cases (Interactors) — сценарии приложения: «снять деньги», «оформить заказ».
  3. Interface Adapters — Presenter/ViewModel, Repository-реализации, мапперы DTO в Entity.
  4. Frameworks & Drivers — UIKit/SwiftUI, URLSession, SwiftData/Core Data, SDK.

Dependency Rule: исходный код может зависеть только внутрь. Use Case не знает, что данные приходят из URLSession, а UI — SwiftUI. Чтобы внутренний слой мог вызвать внешний (сохранить в БД), он объявляет порт — протокол, — а внешний слой его реализует. Это DIP в масштабе всего приложения.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store