Выбор ответа Middle Feature-Sliced Design обновлено

Две фичи нуждаются в общем

Вопрос

Фича features/checkout хочет использовать компонент из features/promo-code. Как правильно поступить по FSD?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: Собрать обе фичи в виджете или странице и связать через пропсы. Слайсы одного слоя не импортируют друг друга даже через публичный API.

Варианты ответа

  1. Импортировать напрямую: слайсы одного слоя связываются через публичный API
  2. Собрать обе фичи в виджете или странице и связать через пропсыправильный ответ
  3. Перенести обе фичи в shared, чтобы их могли использовать все
  4. Объединить их в одну фичу features/checkout-and-promo

Разбор

Слайсы одного слоя не импортируют друг друга даже через публичный API. Композицию делают уровнем выше: виджет оформления заказа рендерит обе фичи и передаёт данные, или общее состояние (например, применённый промокод) опускают в сущность. shared не для бизнес-логики. Склеивание фич в одну даёт слайс с двумя ответственностями.

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

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

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