Выбор ответа Senior Feature-Sliced Design обновлено
Сущность ссылается на сущность
Вопрос
Тип Order в entities/order должен содержать тип User из entities/user. Какой способ предусмотрен в FSD для такой связи?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Явный кросс-импорт через @x: entities/user/@x/order.ts. Сущности одного слоя по общему правилу не импортируют друг друга, но предметные связи между ними естественны, поэтому в FSD есть @x: отдельный публичный API «для конкретного соседа».
Варианты ответа
- Это запрещено: тип надо продублировать в
entities/order - Перенести
Userвshared, чтобы его видели все сущности - Явный кросс-импорт через
@x:entities/user/@x/order.tsправильный ответ - Объединить
userиorderв одну сущностьuser-order
Разбор
Сущности одного слоя по общему правилу не импортируют друг друга, но предметные связи между ними естественны, поэтому в FSD есть @x: отдельный публичный API «для конкретного соседа». Связь становится явной и видна при ревью. Дублировать тип значит рассинхронизировать его. User это бизнес-сущность, в shared ей не место. Объединение даёт сущность с двумя смыслами.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Feature-Sliced Design»
- Фича или сущность
- Минусы FSD
- Объясни FSD
- Слои FSD
- Проверка правил FSD
- Перевод легаси на FSD
- Слой processes
- Слайс