Является ли использование DTO и сущностей нарушением принципа DRY? - PullRequest
4 голосов
/ 18 февраля 2010

Я искал библиотеку под названием Automapper . У меня есть несколько проблем с этим:

  1. Мы не хотим раскрывать нашу модель данных (ХОРОШО). Почему модель данных должна напоминать вашу БД?

  2. с использованием легких DTO вместо ваших сущностей. (ХОРОШО)

  3. Теперь мне нужно сопоставить свои сущности с этими DTO. Соблюдаю ли я принцип СУХОГО?

Ответы [ 2 ]

4 голосов
/ 18 февраля 2010

Можно утверждать, что DTO нарушают DRY, но если это имеет смысл для вашей ситуации, я бы не задумывался об этом дважды.

СУХОЙ, как и большинство лучших практик программирования, не является серебряной пулей. Иногда приходится идти на компромисс. В этом случае я бы поспорил, что нарушение DRY вполне допустимо, чтобы предотвратить проблемы, которые могут возникнуть из-за утечки информации о вашем домене вызывающим абонентам, которые в этом не нуждаются (например, проблемы производительности с отложенной загрузкой N + 1).

0 голосов
/ 18 февраля 2010

Зависит от приложений.Приложения для транзакций и, в зависимости от требований бизнес-логики, предоставляют доступ к вашей модели данных для кода верхнего уровня для проектов определенного масштаба.Я думаю, что СУХОЙ становится важнее, чем больше приложение, но я недостаточно знаю контекст, из которого вы задаете этот вопрос.

...