Что такое чистая архитектура

«Что такое чистая архитектура» — вопрос из категории Архитектура, который задают на 63% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Чистая архитектура — это подход к проектированию приложений, где код разделяется на слои с четкими границами и зависимостями. Основная идея — бизнес-логика не зависит от фреймворков, UI или баз данных.

Основные слои:

  1. Domain — ядро с бизнес-правилами и use cases.
  2. Data — реализация репозиториев, работа с API/БД.
  3. Presentation — UI (Activity, Fragment, ViewModel).

Принципы:

  • Зависимости направлены внутрь (от внешних слоев к Domain).
  • Тестируемость и гибкость.

Пример (Kotlin):

// Domain
interface UserRepository {  
    suspend fun getUser(): User  
}  

// Data  
class UserRepositoryImpl : UserRepository {  
    override suspend fun getUser(): User = // fetch from API/DB  
}  

// Presentation  
class UserViewModel(repo: UserRepository) : ViewModel() {  
    val user = repo.getUser()  
}  

Видео-ответы