ビジネスニーズと設計
3177 ワード
ビジネスニーズ
サービスを開発する前に、どのような機能が開発できるかを整理する必要があります.
だから最初の要求事項を整理します.
会員。
- 회원은 가입하고 조회할 수 있음
- 회원은 일반과 vip 두가지 등급이 있다.
- 회원 데이터는 자체 db를 구축할 수 있고, 외부 시스템과 연동할 수 있다.(미확정)
注文および割引ポリシー
- 회원은 상품을 주문할 수 있다.
- 회원 등급에 따라 할인 정책을 적용할 수 있다.
- 학인 정책은 모든 vip는 천원씩 할인해주는 고정금액 할인, 나중에 변경 가능
- 할인 정책은 변경 가능성이 높다.
- 최악의 경우 적용하지 않을 수 있다.
要求から見ると、会員データ、割引政策などは現在決定しにくい.それでも、このような政策が制定されるまで待つわけにはいかない.インタフェースを作成し、インプリメンテーションをいつでも交換できるように設計すればよい~~
現在、回転フレームは適用されません.
メンバードメイン設計
- 회원을 가입하고 조회할 수 있다.
- 회원은 일반과 vip 두가지 등급이 있다.
- 회원 데이터는 자체 DB를 구축할 수 있고, 외부시스템과도 연동할 수 있다.
メンバードメインのコラボレーション
企画者もこのような関係を見ることができます.これに基づいて、開発者はクラス図を作成します.
클라이언트가 회원 서비스로 가고
회원 서비스는 회원 가입, 회원 조회 두가지 기능 가능
회원 저장소라는 인터페이스 만듦 (외부 데이터랑 연동할 수도 있으니까)
그리고 구현체를 세개 만든다.
- 메모리 회원 저장소,
- 디비 회원 저장소,
- 외부 시스템 연동 회원 저장소를 만들어
위에 세가지 중 무엇으로 할 지 정해지지 않았으니 제일 간단하게 메모리 회원 저장소를 이용하겠다. 그런데 메모리 회원 저장소는 컴퓨터를 껐다가 키면 다 사라진다.
즉 역할과 구현을 나눈 방법이다.
会員等級図
インタフェースとインプリメンテーションを記録します.
これらは実際のサーバを実行せず、クラスを分析するしかないものです.
memberService 라는 역할을 만들고, 구현 클래스로 memberServiceimpl 를 만든다.
memberRepository 라는 역할을 만들고, 구현 클래스로 memoryMemberRepository,
DbmemberRepository 를 만든다.
위에 대로 코딩하면 된다.
しかし、実施形態(M e m o r y M e mberRepository,DbmemberRepository)クラスグラフしかないのでnewで決めます
判断が難しいので、対象図を作成しました.
メンバー・オブジェクトのグラフ
クライアントは、実際のインスタンス間の参照を記録します.
メンバードメイン設計における問題
このコードは設計上どんな問題がありますか?
他のリポジトリに変更する場合、ocpの原則を遵守しますか?
DIPをちゃんと守っているのかな?
依存関係はインタフェースだけでなく,実装にも依存するという問題がある.
注文が終わったら、問題と解決策を説明します.
オーダーと割引ドメインの設計
受注の生成:クライアントは受注サービスに受注の生成を要求します.
会員照会:割引には会員等級が必要です.したがって、注文サービスは会員リポジトリで会員を検索します.
適用割引:注文サービスは会員等級に基づいて割引政策を授権します.
受注結果の戻し:受注サービスは、割引を含む受注結果を返します.
実際には、受注データをデバイスに保存しますが、例が複雑になる可能性があるため、受注結果を省略して返すことができます.
オーダードメインクラス図
オーダードメインオブジェクトグラフ1
発注ドメインオブジェクト図2
]
新しい割引ポリシーの作成
突然企画者が来て言った.
固定割引を固定割引に変更しましょう.固定金額(例えば1000ウォン)ではなく、
注文金額を10%割引~~
最初から定額割引をしておけばよかったのですが…でも企画者.
エイズソフトウェア開発宣言
https://agilemanifesto.org/iso/ko/manifesto.html
Reference
この問題について(ビジネスニーズと設計), 我々は、より多くの情報をここで見つけました https://velog.io/@devel_sujin/비지니스-요구사항과-설계テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol