Читал ли литературу по Clean Architecture

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

Ответ

Да, знаком с Clean Architecture. Основная идея — разделение кода на слои с четкими зависимостями (внутрь, к домену).

Ключевые принципы:

  1. Независимость от UI, фреймворков, БД
  2. Бизнес-логика в центре (domain layer)
  3. Внешние зависимости (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();
  }
}

Плюсы: тестируемость, замена технологий без переписывания логики. На практике во фронтенде часто адаптирую подход, упрощая для небольших проектов.