結びの言葉
ドメイン駆動設計の探求を終えるにあたり、本書の最初で引用した、次の言葉に立ち戻りたいと思います。
課題の合意なしに解決方針の話をしても無意味である。解決方針の合意なしに実現手段の話をしても無意味である。
──エフラット・ゴールドラット・アシュラグ
この言葉こそ、この本で探求してきたドメイン駆動設計の本質です。
課題
役に立つソフトウェアを生み出すには、まず課題を理解しなければいけません。つまり、以下についての理解です。
- 私たちが取り組んでいる事業活動は何か
- 事業目標は何か
- 事業目標を達成するための戦略は何か
ソフトウェア開発の対象となっている事業活動と業務ロジックを深く理解するために、同じ言葉を使いました。
区切られた文脈に分解して、事業課題の複雑さをうまく扱うことを学びました。それぞれの区切られた文脈ごとに、特定の事業課題を解決するための独立したモデルを実装します。
事業活動を構成する業務領域の分類方法を検討しました。つまり、中核、一般、補完の三つのカテゴリーに分類するやり方です。
三つのカテゴリーの違いは次のとおりです。
カテゴリー |
競争優位性 |
複雑さ |
変化 |
実装手段 |
課題の特性 |
中核 |
〇 |
大きい |
多い |
社内で開発 |
複雑で興味深い |
一般 |
× |
大きい |
少ない |
パッケージや外部サービスを利用 |
既存の解決策がある |
補完 |
× |
小さい |
少ない |
内製または外部委託 |
単純 |
解決方針
業務領域のカテゴリーを特定することで、業務領域に最適化された解決方針を選択できることを学びました。業務ロジックを実装する次の四つの方法と、それぞれの使いどころを検討しました。 ...
Get ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.