2014-06-05 2 views
0

저희 팀은 현재 개발중인 새로운 앱에서 DDD 접근 방식을 시도하기로 결정했습니다. 우리가 직면하는 장애물 중 하나는 ActiveObjects ORM 프레임 워크 (https://developer.atlassian.com/display/DOCS/Getting+Started+with+Active+Objects)를 사용해야한다는 것입니다.DDD가 ActiveObjects 프레임 워크로 제한되었습니다.

DDD가 그 자체로 거대한 화제라는 것을 감안할 때, 그러한 제약 조건의 존재는 상황을 더욱 복잡하게 만듭니다. 주된 문제는 도메인 모델 엔티티 속성의 변경 사항이 ActiveObjects를 통해 지속성 스토리지로 전파되는 것입니다. 우리가 고려할 수있는 좋은 해결책이 있습니까?

답변

0

ORM은 도메인과는 전혀 관련이없는 지속성 세부 정보입니다 (다른 계층). DDD는 큰 주제가 아닙니다. 그것은 단순한 사고 방식으로 이해하기 까다 롭고 실행에 의존하는 기술입니다 ("방법"방법이 아닙니다).

DDD는 모든 지속성 관련 리포지토리를 사용합니다. 도메인은 리포지토리 (추상화에만 해당), 절대 db, orm 등을 볼 수 없습니다. ORM은 리포지토리에서 사용됩니다. 제대로 캡슐화 된 도메인 객체는 ORM에 쉽게 매핑 할 수 없으며 이러한 경우에는 다른 방법을 사용해야합니다 (유품 패턴은 깨끗하지만 비용이 많이 드는 - 솔루션 유지 관리). 그러나 본질은 Domain이 ORM에 대해 알지 못하고 Repository가 (ORM을 사용하여) 도메인 객체를 지속/검색하는 책임이 있다는 것입니다.

CQRS도 사용해야하며 UI 또는보고 쿼리 용으로 설계된 비즈니스 개체는 필요하지 않습니다.