Какие знаешь методы достижения чистой архитектуры в коде

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

Ответ

  1. Разделение ответственностей (SoC)
    Каждый модуль/компонент должен решать одну задачу. Например, UI-логика отдельно от бизнес-логики.

  2. Dependency Injection (DI)
    Внедрение зависимостей через параметры или контекст, а не жесткие импорты.

    // Плохо
    class AuthService {
      private api = new ApiService(); // Жесткая зависимость
    }

    // Хорошо
    class AuthService {
      constructor(private api: ApiService) {} // DI
    }
  1. Использование интерфейсов/абстракций
    Зависимости от абстракций, а не конкретных реализаций.

  2. Принцип единой ответственности (SRP)
    Функция/класс должен иметь одну причину для изменения.

  3. Чистые функции
    Функции без сайд-эффектов, зависящие только от входных параметров.

  4. Тестируемость
    Код должен легко покрываться unit-тестами (изоляция зависимостей).

  5. Слоистая архитектура
    Разделение на presentation, domain, data слои (например, по аналогии с Clean Architecture).