2 년 동안 DDD를 끝 냈지만 집계를 설계 할 때 여전히 도전적이었습니다. DDD의 재미있는 부분이기 때문에 머리가 회전합니다. 나는 프로젝트에서 건축가이고 우리는 모델을 설계하는 중이기 때문에이 질문을하고있다. GUI와 함께 모델이 진화하고 고객과 함께 요구 사항이 수집 될 때 반복됩니다. 문제가 생겼습니다. 우리 시나리오는 매우 큰 AR로 성장하는 일
그래서 DDD를 처음 사용하고 있으며 응용 프로그램을 올바르게 설계하려고합니다. 하지만 집계 루트를 식별하는 데 약간의 어려움이 있습니다. 내 필요 *Customers
*Each customer can have 0 or more licenses
*Each license can have 0 or more courses
*Each course can ha
오브젝트 A는 B 오브젝트의리스트를 가지고 있고 B는 C 오브젝트의리스트에 있다고 가정한다. NHibernate를 사용하여 C 인스턴스로 업데이트하면 A의 한 인스턴스 (및 어떤 인스턴스)에 연결된 "무언가"가 업데이트되었음을 어떻게 알릴 수 있습니까? 요격기를 사용하면 C가 업데이트되었음을 알지만 자동으로 C -> B -> A를 따르는 방법 (C는
집계 루트와 관련하여 자녀 개체를 삭제해야 할 책임이 있거나 해당 리포지토리에 있어야합니까? 하나의 파일을 ID로 쿼리하고 싶다면 저장소의 특정 메소드를 생성해야합니까? 내 집계 루트의 코드 : public class Folder {
#region Properties
public Guid Id { get;set; }
publi
집계 루트를 기반으로 데이터 리포지토리를 구현하려고합니다. 그러나 이것이 최선의 방법인지 잘 모르겠습니다. 귀하의 의견이 필요합니다. 여기 내가 (포함 자신의 차일 아래에 들여 쓰기)과 함께 왔어요 내 시스템의 집계 뿌리입니다 Customer (Has Data Repository)
CustomerAccount
CustomerAccountP
을해야합니까. 따라서 A는 내 집계 루트입니다. 하지만 1.) B is also an aggregate root for entity C,D and E
2.) E is also an aggregate root for entity F
1.) C,D and E can not exist without B being created
2.) F can not e
나는 DDD로 놀고 있는데이 질문이 튀어 나옵니다. 자식 루트를 어떻게로드합니까? 몇 가지 성능 문제가 발생할 수 있습니다. 다음 예를 상상해 public AggregateRoot1
{
#region
properties
#endregion
public AggregateRoot2 AR2{get;set;}
p
나는 일반적인 저장소 웹 주위에 떠 그 중 하나 또한이 세 자녀 개체의 X, Y 및 Z를 이있는 기업이를 루트 aggreate에 여러 아이 엔티티를 추가 또는 전화 .. . 내 서비스 방법 AXYZ에서 () 내가 여러 저장소을 호출 (의사 코드) repoA.Update(objectA);
repoY.Delete(objectA.PK_Id);
foreach
집계 루트가 하위 엔티티의 변경 사항을 추적하는 방법을 파악하는 데 어려움이 있습니다. 주문 (루트)에 Order 클래스가 집계 루트 인으로 OrderLineItem : 하자 내가 총을 말한다. OrderLineItem에서 Order 클래스를 통해 이루어진 변경 사항을 어떻게 추적합니까? 예를 들어 저장소를 만들 때 (구현 중) OrderRepository
DDD에서 읽은 모든 것은 집계 내의 상태가 강하게 일관되어야 함을 의미합니다. 이것은 하나의 중복이 필요한 경우 강력하게 일관된 복제 (예 : 2PC, 3PC 또는 Paxos) 만 사용할 수 있음을 의미합니다. 멀티 마스터 또는 마스터 - 슬레이브와 같이 일관되게 복제 할 수 있습니까? 만약 당신이 그들을 사용했다면, 당신은 여전히 DDD 용어로 '집