Ответ
Да, знаком с Clean Architecture. Основная идея — разделение кода на слои с четкими зависимостями (внутрь, к домену).
Ключевые принципы:
- Независимость от UI, фреймворков, БД
- Бизнес-логика в центре (domain layer)
- Внешние зависимости (API, хранилища) — на периферии
Пример структуры для фронта:
// domain (чистый TypeScript)
interface User {
id: string;
name: string;
}
// application (use cases)
class GetUserProfile {
constructor(private userRepository: UserRepository) {}
execute(id: string): Promise<User> {
return this.userRepository.getById(id);
}
}
// infrastructure (API calls)
class HttpUserRepository implements UserRepository {
async getById(id: string): Promise<User> {
const response = await fetch(`/api/users/${id}`);
return response.json();
}
}
Плюсы: тестируемость, замена технологий без переписывания логики. На практике во фронтенде часто адаптирую подход, упрощая для небольших проектов.