Ответ
Чистая архитектура — это подход к проектированию приложений, при котором код разделяется на слои с четкими границами и зависимостями, направленными внутрь (к бизнес-правилам). Основные принципы:
- Независимость от фреймворков — бизнес-логика не зависит от UI, БД или внешних сервисов.
- Тестируемость — легко тестировать без UI, API или БД.
- Слои:
- Entities — бизнес-сущности (например,
User
). - Use Cases — сценарии взаимодействия (например,
AuthUser
). - Interface Adapters — преобразователи данных (DTO, Presenters).
- Frameworks & Drivers — UI, API, БД (React, Express, MongoDB).
- Entities — бизнес-сущности (например,
Пример (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);
}
}
Плюсы: гибкость, поддержка, тестируемость. Минусы: сложность для мелких проектов.