Что такое FSD?
Продвинутые темы
FSD (Feature-Sliced Design) — это методология построения архитектуры фронтенд-приложений через деление кода на стандартные слои и бизнес-ориентированные слайсы с однонаправленными зависимостями.
Слои (сверху вниз)
- app — инициализация, провайдеры, роутер, глобальные стили.
- pages — страницы-маршруты, композиция из нижних слоёв.
- widgets — крупные самостоятельные блоки UI.
- features — пользовательские сценарии и действия.
- entities — бизнес-сущности (user, product) и их модель.
- shared — переиспользуемая инфраструктура: UI-кит, утилиты, API-клиент.
Правило зависимостей
Импорты идут только «вниз»: слой использует нижележащие, но не наоборот и не «вбок» между слайсами одного уровня.
app → pages → widgets → features → entities → sharedСлайсы и сегменты
Внутри слоя код делится на слайсы (по бизнес-домену), а слайс — на сегменты: ui, model, api, lib, config.
Зачем
- Масштабируемость и предсказуемая структура.
- Явные границы и контроль связанности.
- Понятно, куда класть новый код.
Коротко для собеседования
FSD — методология структуры фронтенда: слои app/pages/widgets/features/entities/shared с однонаправленными импортами вниз, слайсы по бизнес-доменам и сегменты (ui/model/api/lib). Даёт масштабируемость и контроль зависимостей.