примитивов? Как далеко вы заходите с тем, чтобы все примитивы заменять на VO? Например, будете ли вы оборачивать оценку студента в StudentMark, чтобы он был от нуля до пяти? Какие проблемы возникают с этим подходом в реальных проектах? Как вы сочетаете ValueObjects и хранение в SQL БД?
Использую. Проблем даже назвать не могу, иначе бы не делал. Да, буду, скорее всего, ибо это часть"ubiquitous language". Хранение в бд зависит от того как маппишь объекты.
Мне просто импонирует сама идея, потому что такой код легко читать, но не могу понять как быть в пограничных случаях. Например, есть условные работники фирмы и у них есть конечное число должностей - стоит ли использовать енум или VO с набором констант? Или вот например статистика работника, в которой есть строго 0 или положительные показатели - стоит ли это оборачивать в некий StatisticalNumber? Мне вот пока тяжело понять насколько фанатично стоит заменять все примитивы на соответствующие VO.
Ну должность наверное это все же сущность, а не vo.
А вот почему? Две должности с разными референсами всегда равны между собой
Ну вот вы хотите проверить равны ли в должности двух работников :)) Референсы разные, а должности равны. Ну или вот другой пример - позиция игрока в команде. Нападающий, защитник, вратарь. Позиция тоже скорее сущностью? Если да, то почему?
Ну почему это всё-таки энтити для меня : должность это не только название, а скорее всего ещё и ставка за час, возможно и прочее. Если я захочу проверить равны ли по должности они - я спрошу у пользователя, равна ли должность ему. Возможно эту проверку все надо сместить в должность, тут сейчас не скажу точно. Я же сравниваю не референсы, а идентификаторы ролей У нас и получается, что пользователь это агрегейт рут, а должность его энтити.
А если у меня NoSql база и я могу хранить в поле объекта другой объект?) Ну и получается что хранить в должности ставку некорректно, потому что ставка это ставка и нарушает логику равенства двух должностей.
А ддд не касается бд, поэтому инфраструктурные проблемы остаются на ваши плечах
Ну так вы же сейчас сами обосновали свой выбор тем, что SQL не умеет хранить в ячейках не примитивы
Обсуждают сегодня