DDD: Где данные должны быть преобразованы, отформатированы, зашифрованы и т. Д.?

Для будущих проектов я решил использовать dto для передачи данных на уровень домена. Здесь также я делаю большую часть проверки данных.

Где я должен поставить форматирование данных?

1) В DTO, когда он будет готов к отправке на уровень домена
ИЛИ ЖЕ
2) На уровне инфраструктуры прямо перед его сохранением?
ИЛИ ЖЕ
3) Где-то еще:)

т.е.: пароль, который необходимо зашифровать перед сохранением, или изображение, которое необходимо преобразовать, изменить и т. д. перед сохранением.

Я хочу, чтобы все данные форматировались в одном слое, не хочу, чтобы их разбрасывали повсюду.

Другими словами: должны ли данные быть подготовлены для того, чтобы домен обрабатывал их, или домен должен получить необработанные данные и изменить их после того, как они будут обработаны доменом?

1 ответ

Решение

Форматирование данных представляет собой техническую проблему, и поэтому оно должно осуществляться инфраструктурными службами, а не доменом. Например, хеширование пароля должно обрабатываться хранилищем, в котором сохраняется соответствующий агрегат. Форматирование может также происходить в адаптере в шестиугольной архитектуре, в которой обычно находятся DTO. Этот тип форматирования зависит от типа используемого адаптера. Например, вы можете рассматривать RESTful API, представляющий модель домена, как адаптер между HTTP и моделью домена. В этом случае форматирование или перевод должны выполняться между представлением ресурса и соответствующими объектами домена.

Другие вопросы по тегам