Ответ вслух Middle Feature-Sliced Design спрашивают часто обновлено

Объясни FSD

Вопрос

Расскажи, что такое Feature-Sliced Design и как в нём устроен проект.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

FSD это методология структуры фронтенда, где код делится на три уровня. Слои задают ответственность: app для инициализации и провайдеров, pages для страниц, widgets для крупных блоков, features для пользовательских действий, entities для бизнес-сущностей, shared для общего без бизнес-смысла.

Что должно прозвучать в ответе

  • Три уровня: слои, слайсы, сегменты

  • Слои сверху вниз: app, pages, widgets, features, entities, shared

  • Импорт только из нижележащих слоёв, слайсы одного слоя не импортируют друг друга

  • Публичный API слайса через index.ts, без глубоких импортов

  • Фича = действие пользователя, сущность = объект предметной области

  • Правила проверяются линтером (Steiger)

Что могут спросить следом

  • Где лежит кнопка «Купить»?
  • Что делать, если двум фичам нужно общее?
  • Какие минусы у FSD?

Разбор

FSD это методология структуры фронтенда, где код делится на три уровня. Слои задают ответственность: app для инициализации и провайдеров, pages для страниц, widgets для крупных блоков, features для пользовательских действий, entities для бизнес-сущностей, shared для общего без бизнес-смысла. Слайсы делят слой по доменам, например entities/product, а сегменты делят слайс на ui, model, api, lib. Главное правило: импортировать можно только вниз, и соседние слайсы одного слоя друг друга не видят. Наружу слайс отдаёт только публичный API через index.ts. Это даёт предсказуемость: по пути файла понятно, за что он отвечает, и изменения не расползаются. Соблюдение проверяю линтером Steiger.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме