刻々と変化する顧客のニーズに完璧に対応するプログラムを設計したいですか?挑戦を受けます。
これは大きな課題ですが、幸いなことに、ドメイン駆動設計が私たちを助けてくれるのです。
開発者である私たちは、コードに潜るのが大好きです。 最新の技術を試し、新たな課題に取り組むことを期待しています。それはよくわかります。しかし、一歩も引かずにコーディングすると、大抵の場合、修正が困難な脆弱なソリューションになってしまいます。
でも、顧客がいつもしていることをご存知でしょうか?考えを変える!アプリケーションを変更するたびに髪をかきむしるのを避けたいなら、それを予期する能力が必要です。
このコースでは、複雑な問題に対処するソフトウェアを設計するための包括的なアプローチであるドメイン駆動設計(DDD)について学びます。
このコースの前半では、「DDDとは何か」を発見します。顧客とのコラボレーション、特にビジネスロジックを理解することために、顧客の視点からアプリケーションを理解する方法について説明します。ここでは、ビジネスロジックをコードに最適な形で転記するための共通語彙を作成する方法について説明します。
後半では、UMLのユースケース図とクラス図を用いて、最初のドメインモデルを一緒に作成します。エンティティ・オブジェクト、バリュー、アグリゲートという概念が、プログラミングの味方になってくれます。
これで、アプリケーションを納品した後、クライアントから「『忘れてしまった!それもやってもらえませんですか?あれを修正してもらえませんですか?それほど難しいことではないよね!」」と言うコメントを下げます。
目的
- ドメイン駆動設計の手法でユーザーニーズを把握する。
- ユーザー要求をドメインモデルで定式化する。
流れ
第1部 ドメイン駆動設計手法によるユーザーニーズの把握
- ドメインモデルで設計上の問題を解決する
- ドメイン駆動設計のアプローチでモデルを構築する(構築中)
- イベントストーミングでアプリケーションの目的を明確にする(構築中)
- 顧客のモデルにおけるアクター、ユースケース、エンティティの特定(構築中)
第2部 ユーザーのニーズを形にする
- ユースケース図によるドメインモデルの形式化(構築中)
- クラス図から共通用語集を定義する(構築中)
- クライアントのニーズの変化に対応したダイアグラムの作成(構築中)
- ドメインモデルの実装(構築中)