Объясни FSD
Вопрос
Расскажи, что такое Feature-Sliced Design и как в нём устроен проект.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Три уровня: слои, слайсы, сегменты
Слои сверху вниз: 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 ошибок.