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

Сущность ссылается на сущность

Вопрос

Тип Order в entities/order должен содержать тип User из entities/user. Какой способ предусмотрен в FSD для такой связи?

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

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

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

Коротко

Правильный ответ: Явный кросс-импорт через @x: entities/user/@x/order.ts. Сущности одного слоя по общему правилу не импортируют друг друга, но предметные связи между ними естественны, поэтому в FSD есть @x: отдельный публичный API «для конкретного соседа».

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

  1. Это запрещено: тип надо продублировать в entities/order
  2. Перенести User в shared, чтобы его видели все сущности
  3. Явный кросс-импорт через @x: entities/user/@x/order.tsправильный ответ
  4. Объединить user и order в одну сущность user-order

Разбор

Сущности одного слоя по общему правилу не импортируют друг друга, но предметные связи между ними естественны, поэтому в FSD есть @x: отдельный публичный API «для конкретного соседа». Связь становится явной и видна при ревью. Дублировать тип значит рассинхронизировать его. User это бизнес-сущность, в shared ей не место. Объединение даёт сущность с двумя смыслами.

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

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

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