2010-02-18 3 views
4

Я смотрел библиотеку под названием Automapper. У меня есть несколько проблем с этим:Использует нарушение DTO и сущностей DRY?

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

  2. Использование легких DTO вместо ваших объектов. (ХОРОШЕЕ)

  3. Теперь мне нужно сопоставить свои сущности с этими DTO. Я уважаю принцип СУХОЙ ???

ответ

4

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

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

0

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

Смежные вопросы