Правильно ли использовать вложенные слайсы? #613
-
Здравствуйте! Допустим мы имеем сущность Client, у которой есть документы, события, платежи, чеки и т.д. Правильно ли организовывать подслайсы? Например: entities/Client/Client/ui/ClientList entities/Client/Document/ui/DocumentList entities/Client/Event/ui/EventList entities/Client/Note/ui/NoteList entities/Client/Check/ui/CheckList Или же нужно выносить всё обязательно на один уровень? Правда тогда , если есть сущность Staff и у него есть документы, события - то получим пересечение: entities/Client/ui/ClientList entities/Document/ui/DocumentList entities/Event/ui/EventList entities/Staff/ui/StaffList entities/Document/ui/DocumentList - intersection entities/Event/ui/EventList - intersection Допустим тот случай, когда переиспользовать EventList, DocumentList нельзя, так как они различаются для клиаента и стафа. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Нет, подслайсы не рекомендуется делать в текущей версии методологии. Смысл разделения на слайсы в том, чтоб максимально разграничить предметные области, упрощая таким образом поддержку кода. Тесно связанные сущности работают против этой цели. Пересечение устраняется как раз независимостью сущности от других. То есть, если есть сущность Чек, она не знает, принадлежит она Пользователю или Сотруднику. Связь Чека и Пользователя происходит с помощью композиции на уровнях выше. Иногда бывает так, что без связности сущностей не обойтись. Для этого есть RFC для кросс-импортов, который в будущем будет принят в основной методологии, его можно использовать уже сейчас: |
Beta Was this translation helpful? Give feedback.
Нет, подслайсы не рекомендуется делать в текущей версии методологии.
Смысл разделения на слайсы в том, чтоб максимально разграничить предметные области, упрощая таким образом поддержку кода. Тесно связанные сущности работают против этой цели.
Пересечение устраняется как раз независимостью сущности от других. То есть, если есть сущность Чек, она не знает, принадлежит она Пользователю или Сотруднику. Связь Чека и Пользователя происходит с помощью композиции на уровнях выше.
Иногда бывает так, что без связности сущностей не обойтись. Для этого есть RFC для кросс-импортов, который в будущем будет принят в основной методологии, его можно использовать уже сейчас:
#390 (comment)