Слои FSD и что в каждом
Вопрос
Перечисли слои FSD сверху вниз и скажи, что живёт в каждом.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
app - инициализация: провайдеры, роутер, глобальные стили
pages - страницы, собранные из виджетов и фич
widgets - самостоятельные блоки страницы: шапка, лента, сайдбар
features - действия пользователя: «добавить в корзину», «подписаться»
entities - бизнес-сущности: карточка товара, профиль пользователя
shared - переиспользуемое без привязки к домену: кнопки, хелперы, api-клиент
imporты идут только вниз: pages видит widgets, обратного не бывает
Что могут спросить следом
- Где лежит форма логина - feature или widget?
- Нужен ли слой entities, если данные приходят одним куском?
Разбор
Сверху вниз:
- app - то, что собирает приложение: провайдеры, роутер, глобальные стили, инициализация аналитики. Кода здесь мало, и он про запуск, а не про домен.
- pages - экраны. Страница почти ничего не делает сама: она компонует.
- widgets - крупные самостоятельные блоки: шапка, лента, панель фильтров. Виджет может состоять из нескольких фич и сущностей.
- features - то, что пользователь делает: «добавить в корзину», «переключить тему», «отправить форму». Обычно это действие + его UI.
- entities - то, о чём приложение:
user,product,order. Карточка сущности, её типы, её запросы. - shared - переиспользуемое и ничего не знающее о домене: UI-кит, хелперы, настроенный http-клиент, константы.
В новой версии методологии слой processes считается устаревшим: сквозные сценарии
раскладывают по страницам и фичам.
Частые ошибки
- Называть слои в произвольном порядке: направление импортов задаёт именно порядок.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.