2010-02-18 2 views
4

나는 Automapper이라는 도서관을보고 있었다. 나는이와 몇 가지 문제를 겪고 :DTO 및 엔티티를 DRY 원칙을 위반합니까?

  1. 우리는 우리의 데이터 모델 (GOOD)를 노출 싶지 않다. 왜 데이터 모델은 DB와 매우 유사합니까?

  2. 엔티티 대신 경량 DTO를 사용하십시오. (좋아)

  3. 이제 엔티티를이 DTO에 매핑해야합니다. 내가 건식 원리를 존중합니까?

답변

4

하나는 DTO들이 DRY 위반 주장 할 수 있지만,이 상황에 의미가 있다면 나는 그것에 대해 두 번 생각하지 않을 것입니다.

DRY는 대부분의 프로그래밍 모범 사례와 마찬가지로 은색 총알이 아닙니다. 때로는 타협해야합니다. 이 경우 도메인 세부 정보가 필요하지 않은 발신자 (예 : N + 1 지연로드 문제)에게 누출 될 수있는 문제를 방지하기 위해 DRY를 위반하는 것이 완벽하게 수용 가능하다고 주장합니다.

0

응용 프로그램에 따라 다릅니다. 트랜잭션 응용 프로그램과 비즈니스 로직 요구 사항에 따라 데이터 모델을 상위 계층 코드에 노출하면 특정 규모의 프로젝트에 적합 할 수 있습니다. DRY는 응용 프로그램이 커질수록 중요 해지 겠지만,이 질문을하는 맥락을 충분히 알지 못합니다.