- 하나의 개념이 많이 쓰이면 분리를 검토하자
- 상태에 의해 개념이 생기면 격벽을 세워보자
- 상태나 행위를 개념으로 착각할 수 있다
커머스
- 고객, 전시, 상품, 주문, 결제
개념 : 우리가 만든 소프트웨어의 비지니스를 담당하는 곳
개념 없는 곳 : 모니터링, 테스팅, 외부 연동사 (외부는 우리의 도메인과 다르게 변해야 함)
- 외부 연동사 코드들은 개념 영역을 참조하면 안됨. 격벽이 세워져야 한다.
core - core-api - core-domain product-provider - provider-batch - provider-coumon-client - provider-tpang-client
- 개념에도 계층이 있다.
- 모든것이 개념이 되진 않는다
- 개념 영역을 분리할 수 있다.
설계
하지말자
- 요구사항이 완벽해야 설계 가능해요
- 우리 설계에서 그건 개발 못해요
- 설계해봐야 개발 일정이 나옵니다.
상기하자
- 성급한 설계는 모든 것을 망가트린다. → 변화에 취약해짐
- 과도한 설계는 모든 것을 망가트린다.
- 설계는 필요한 만큼만 하자
개발과정
분석 → 설계 → 구현 : X
구현을 해라 그냥
- 개념 + 격벽
- TestCode를 계속 짜서 위 아래를 돌리는 것
- 증명 + 피드백
위의 과정들을 하다보면 설계가 나온다.
지속 성장가능한 설계를 만들어가는 방법
개념을 잡고
격벽을 세워
구현을 채워나가
설계를 완성한다.