juniors-dev-study / domain-driven-design

1 stars 0 forks source link

7장 언어의 사용(확장 예제) #7

Closed y2o2u2n closed 3 years ago

chanhyeong commented 3 years ago

책 내용 순서대로 요약한거 링크 볼 필요는 없음

생각

새로운 기능 추가하는게 인상적이고 이상적인 듯 우리가 저렇게 새로운 기능을 추가할 때 잘 할 수 있을까

읽기 힘들다..

bearics commented 3 years ago

7장 언어의 사용(확장 예제)

image 도메인 격리(응용 기능 소개) = layered architecture

  1. Tracking Query(추적 질의) : 특정 cargo의 과거와 현재 처리 상태 조회
  2. Booking Application(예약 애플리케이션) : new cargo 등록 & 등록된 cargo 처리 준비
  3. Incident Logging Application(사건 기록 애플리케이션) : 각 cargo 내역 기록

이 응용 계층의 클래스 = 조정자(coordinator)

ENTITY & VO 구분

Customer : ID 식별성 O > ENTITY

Cargo : 여러 Cargo 구분 필요. ID 식별성 O > ENTITY

Handling Event & Carrier Movement : 사건 구분 필요. 식별성 O > ENTITY

Location : 식별성 필요. > ENTITY

Delivery History* : Cargo와 일대일 관계라 식별성 필요?

Delivery Specification : > VO

도메인의 연관관계 설계

image

AGGREGATE의 경계

image

REPOSITORY의 선정

image

객체 생성

MODULE

image

업무 분야에 따라 관계에 따라 잘 나눠야 한다.

새로운 기능 추가

image

image

무슨 소리지..?

y2o2u2n commented 3 years ago

제가 이해한 절차는 아래와 같긴 합니다. 근데 책 사례는 잘 이해 안가요 🤮

  1. 도메인 지식 탐구, 보편 언어 구체화
  2. 도메인 계층 식별
  3. ENTITY 와 VALUE OBJECT 구분
  4. 연관관계 설계
  5. AGGREGATE 경계 긋기
  6. REPOSITORY 선정
  7. FACTORY 도입 검토
  8. MODULE 분리
youngvly commented 3 years ago

🤮 Aggregate root Entity만 repository를 가질수있다고 한다는데, 그럼 cargo-history와같은 다른 entity는 어떻게 db에서 가져오는걸까요?. handlingEvent랑 cargo history랑 의미나 역할차이를 모르겠네요 ㅜ

bearics commented 3 years ago

다음은 8,9 장