반응형
하루씩 잡아먹는 이벤트 스토밍 워크샵과 달리,
도메인 전문가와 짧게 여러번 만나 하이레벨로 인터뷰하는것이 좋다.
한번의 만남에 하나의 워크플로 (한 명이 할 수 있는 일, 한 팀이 하는 일)를 다루는 것이 좋다.
하이레벨이란 입력과 출력에만 집중하는 것을 의미한다. (하이레벨 x)
워크플로 :
먼저 제품 코드가 올바른지 체크함.
프로덕트 카탈로그에서 제품을 찾는다. (다른 바운디드 컨텍스트의 가능성)
주문 수량과 제품 가격을 이용해 Cost를 계산함
청구 부서와 배송 부서용 2 개의 사본을 만듬. 원본은 파일에 보관
주문을 스캔하여 고객에게 이메일로 보내 주문 승인 알림 (메일 알림)
주문과 견적의 차이 -
주문과 견적은 둘 다에 대해 동일한 주문 양식을 사용할 만큼 충분히 유사하지만 연결된 워크플로가 다릅니다.
“견적은 고객이 우리가 가격을 계산하기를 원하지만 실제로 상품을 발송하지 않기를 바라는 경우입니다. 견적을 통해 양식에 가격을 추가하고 고객에게 다시 보냅니다. 배송 및 청구 부서에서 할 일이 없기 때문에 사본을 보내지 않습니다.”
기능적 요구사항 : 제품 검색 페이지가 필요한가?
비기능적 요구사항 : 평균적인 일일 사용자, 주문량, 트래픽 급증 여부. 전문가 대상 시스템인지 여부. 레이턴시
B2B 애플리케이션의 요구사항 : 예측 가능성, 강력한 데이터 처리 및 질문이나 분쟁이 있는 경우 발생하는 모든 것에 대한 감사 추적.
입출력에 대해 생각하기
입력은 분명히 주문 형식입니다(곧 구체화해야 하는 정확한 정의).
주문 승인 메일 발송은 부수효과입니다.
워크플로의 출력은 항상 생성된 이벤트입니다.
즉 다른 바운디드 컨텍스트에서 작업을 트리거하는 이벤트여야 합니다.
우리의 경우 워크플로의 출력은 "OrderPlaced" 이벤트와 같은 것이며 배송 및 청구 컨텍스트로 전송됩니다.
반응형
'BackEnd' 카테고리의 다른 글
도메인을 문서화하기 (0) | 2022.03.17 |
---|---|
데이터베이스 주도 설계, 클래스 주도 설계 피하기 (0) | 2022.03.17 |
유비쿼터스 랭귀지 만들기 (0) | 2022.03.17 |
바운디드 컨텍스트로 솔루션 만들기 (0) | 2022.03.17 |
도메인을 서브도메인으로 나누기 (0) | 2022.03.17 |