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

Ответ

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

  1. Независимость от фреймворков — бизнес-логика не зависит от UI, БД или внешних сервисов.
  2. Тестируемость — легко тестировать без UI, API или БД.
  3. Слои:
    • Entities — бизнес-сущности (например, User).
    • Use Cases — сценарии взаимодействия (например, AuthUser).
    • Interface Adapters — преобразователи данных (DTO, Presenters).
    • Frameworks & Drivers — UI, API, БД (React, Express, MongoDB).

Пример (TypeScript):

// Entity
interface User {
  id: string;
  name: string;
}

// Use Case
class AuthUser {
  execute(user: User) { /* логика авторизации */ }
}

// Adapter (HTTP)
class UserController {
  constructor(private authUser: AuthUser) {}
  login(req, res) {
    this.authUser.execute(req.body);
  }
}

Плюсы: гибкость, поддержка, тестируемость. Минусы: сложность для мелких проектов.