Что такое Clean Architecture и Dependency Rule?
Суть
Clean Architecture (Роберт Мартин) — способ организовать код в концентрические слои, где в центре бизнес-правила, а снаружи — детали:
- Entities — модели и правила предметной области (
Account,Money). - Use Cases (Interactors) — сценарии приложения: «снять деньги», «оформить заказ».
- Interface Adapters — Presenter/ViewModel, Repository-реализации, мапперы DTO в Entity.
- Frameworks & Drivers — UIKit/SwiftUI, URLSession, SwiftData/Core Data, SDK.
Dependency Rule: исходный код может зависеть только внутрь. Use Case не знает, что данные приходят из URLSession, а UI — SwiftUI. Чтобы внутренний слой мог вызвать внешний (сохранить в БД), он объявляет порт — протокол, — а внешний слой его реализует. Это DIP в масштабе всего приложения.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep