В чем разница между FSD и другими архитектурами

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

Ответ

FSD (Feature-Sliced Design) — это архитектура, которая делит приложение по бизнес-логике (фичам), а не по типам файлов (как MVC) или слоям (как Clean Architecture).

Отличия от других подходов:

  1. Feature-based — структура строится вокруг фич (/cart, /profile), а не технических слоёв (/components, /api).
  2. Изолированность — каждая фича независима и содержит свою логику, UI и API.
  3. Масштабируемость — проще добавлять новые фичи без влияния на другие.

Пример структуры:

src/  
  features/  
    cart/      # Вся логика корзины  
      ui/  
      model/  
      api/  
    auth/      # Вся логика авторизации  
      ui/  
      model/  

Плюсы:

  • Чёткое разделение зон ответственности.
  • Уменьшает связанность кода.

Минусы:

  • Требует дисциплины в организации импортов (нельзя импортировать фичи друг в друга напрямую).