ORM и DDD

Обсуждаем, как правильно строить приложения
nootropil
Сообщения: 46
Зарегистрирован: 2015.11.21, 18:45

Re: ORM и DDD

Сообщение nootropil »

samdark писал(а):Готово. Спасибо за подсказки.
Интересное решение.
Возникает вопрос: а если мы хотим в модели хранить значениея не 1 в 1 с базой? Например в хранить время в DateTime или что то в VO?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ORM и DDD

Сообщение zelenin »

nootropil писал(а):
samdark писал(а):Готово. Спасибо за подсказки.
Интересное решение.
Возникает вопрос: а если мы хотим в модели хранить значениея не 1 в 1 с базой? Например в хранить время в DateTime или что то в VO?
в ddd это обычное дело. Но гидратор - это не часть ddd или orm. Это лишь прикладной инструмент, помогающий присваивать данные. Конвертировать же данные между ddd-моделью и ее отражением в хранилище должен маппер.
nootropil
Сообщения: 46
Зарегистрирован: 2015.11.21, 18:45

Re: ORM и DDD

Сообщение nootropil »

А если с помощью ORM (Doctina) реализовывать репозитории? То есть у нас будет, к примеру сущность DUser, отражающая структуру таблицы (и единичную запись) 1 в 1, которая будет использованна для создания сущности User бизнес логики. Выглядит удобно. Хотя и много сущностей, но логика очень проста.

С AR такой приём выглядит довольно грязно.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ORM и DDD

Сообщение zelenin »

nootropil писал(а):А если с помощью ORM (Doctina) реализовывать репозитории? То есть у нас будет, к примеру сущность DUser, отражающая структуру таблицы (и единичную запись) 1 в 1, которая будет использованна для создания сущности User бизнес логики. Выглядит удобно. Хотя и много сущностей, но логика очень проста.
DUser не нужен. Доктрина позволяет использовать доменные сущности.
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: ORM и DDD

Сообщение anton_z »

Если пихать код сериализации в сами агрегаты, это же будет лишняя обязанность для агрегата. Что скажете насчет JMSSerializer (http://jmsyst.com/libs/serializer) для этого кейса? Можно создать сервис, который будет использовать JMSSerializer. на каждый класс будет будет свой маппинг в инфраструктурном слое.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ORM и DDD

Сообщение zelenin »

anton_z писал(а): 2017.01.15, 16:21Если пихать код сериализации в сами агрегаты, это же будет лишняя обязанность для агрегата.
это правда
anton_z писал(а): 2017.01.15, 16:21Что скажете насчет JMSSerializer (http://jmsyst.com/libs/serializer) для этого кейса? Можно создать сервис, который будет использовать JMSSerializer. на каждый класс будет будет свой маппинг в инфраструктурном слое.
я именно так сериалайзеры и делаю: реестр маппингов из конфига и единый сервис. JMS избыточен, имхо. И опять же мы выяснили, что сериализация именно сущностей приведет к неконсистентности.
Ответить