juniors-dev-study / domain-driven-design

1 stars 0 forks source link

17장 전략의 종합 #19

Closed chanhyeong closed 2 years ago

chanhyeong commented 2 years ago

17. 전략의 종합

image
517p

대규모 구조 + BC

전략적 설계의 세 가지 기본 원칙은 서로 대체 불가능이며, 서로 보완하고 상호작용

RESPONSIBILITY LAYER 는 하나의 BC 로 한정하지 않고, CONTEXT MAP 에 걸쳐서도 적용할 수 있다

대규모 구조 + 디스틸레이션

대규모 구조가 CORE DOMAIN 내 관계와 GENERIC SUBDOMAIN 사이의 관계를 설명하는데 도움이 될 수 있다
대규모 구조 자체도 CORE DOMAIN 의 중요한 부분일 수 있다

평가를 먼저

  1. CONTEXT MAP 을 그려라
  2. UL 을 사용하고, 개발에 도움을 줄 만큼 풍부한지
  3. (무엇이 중요한지 이해) CORE DOMAIN 식별, DOMAIN VISION STATEMENT 작성
  4. 기술이 MODEL-DRIVEN DESIGN 에 유리한지
  5. 개발자들이 기술 역량을 갖추었는지
  6. 개발자들이 도메인을 잘 알고 관심이 있는지

전략을 세우는 주체

애플리케이션 개발에서 생기는 구조

EVOLVING ORDER 에 따라 공유하는 원칙으로, 질서가 유기적으로 성장 (XP 팀 의 전형적인 모델)

(실천적인 개발자) 개인이나 팀의 일부에 관리 책임 - 단일화된 상태로 유지에 도움

고객 중심의 아키텍처 팀

중앙집중된 의사결정

전략적 설계 결정을 위한 6가지 필수 요소

  1. 의사결정은 팀 전체에 퍼져야 함
  2. 의사결정 프로세스는 피드백을 흡수해야 함
  3. 계획은 발전을 감안해야 함 (원칙은 개발 진행 과정에 따라 성장하고 변화해야 한다)
  4. 아키텍처 팀으로 가장 뛰어나고 똑똑한 사람들을 모두 배치하면 안됨
    • 애플리케이션 개발에도 설계 솜씨가 필요
    • 모든 애플리케이션 팀에는 능력이 출중한 설계자가 포함되어야 함
  5. 전략적 설계에는 최소주의와 겸손이 필요
  6. 객체는 전문가, 개발자는 다방면에 지식이 풍부한 사람

기술 프레임워크 또한

도메인 모델에 대한 표현력있는 구현과 손쉬운 변경을 방해한다면 안됨

마스터 플랜을 조심

유기적 질서를 위함 (마스터 플랜을 따르는 경우 전체주의적인 질서가 될 수 있음)

y2o2u2n commented 2 years ago

전략적 설계 결정을 위한 6가지 필수 요소

  1. 의사결정은 팀 전체에 퍼져야 한다.
  2. 의사결정 프로세스는 피드백을 흡수해야 한다.
  3. 계획은 발전을 감안해야 한다.
  4. 아키텍처 팀에서 가장 뛰어나고 똑똑한 사람들을 모두 데려가서는 안 된다.
  5. 전략적 설계에는 최소중의와 겸손이 필요하다.
  6. 객체는 전문가, 개발자는 다방면에 지식이 풍부한 사람

종합 계획을 조심하라 (= 점진적으로 하라는 의미...)

bearics commented 2 years ago

image 이렇게 나누게 되면 코드에도 반영이 되는걸까요?? 반영된다면 어떤식으로 반영할 수 있을까요

image 하나의 BC를 대규모 구조 면에서 본다면 reposibility layer로 나눌 수 있다는건가요??