第1章 ドメインモデリング ドメイン・モデリング
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、TDDと親和性の高い方法で、ビジネスプロセスをコードでモデリングする方法について考察する。 なぜドメインモデリングが重要なのかについて説明し、ドメインをモデリングするためのいくつかの重要なパターンを見ていく:エンティティ、バリューオブジェクト、ドメインサービスである。
図1-1は、ドメインモデルパターンをシンプルに視覚化したものである。この章ではいくつかの詳細を説明し、他の章に進むにつれて、ドメインモデルを中心に物事を構築していくが、核となるこの小さな図形はいつでも発見できるはずだ。
図1-1. ドメイン・モデルの説明図
ドメインモデルとは何か?
序章では、3階層化アーキテクチャの中心層をビジネスロジック層という言葉で説明した。 本書の残りの部分では、代わりにドメインモデルという用語を使うことにする。これは、DDDコミュニティからの用語で、我々の意図する意味をよりよく捉えている(DDDについては次のサイドバーを参照)。
ドメインとは、あなたが解決しようとしている問題を言い換えたものだ。著者は現在、家具のオンライン小売業者で働いている。 どのシステムについて話しているかにもよるが、ドメインは購買・調達かもしれないし、製品設計かもしれないし、物流・配送かもしれない。ほとんどのプログラマは、ビジネスプロセスの改善や自動化に日々取り組んでいる。
モデルとは、有用な特性を捉えたプロセス( )や現象のマッピングのことである。人間は例外的に、頭の中で物事のモデルを作り出すのが得意である。例えば、誰かがあなたに向かってボールを投げると、あなたはほとんど無意識のうちにその動きを予測することができる。あなたのモデルは決して完璧ではない。光速に近い速度や真空状態でのオブジェクトの挙動について、人間はひどい直感を持っている。だからといって、そのモデルが間違っているということにはならないが、いくつかの予測はそのモデルの範囲外ということになる。
ドメインモデルとは、ビジネスオーナーが自分のビジネスについて持つメンタルマップである。すべてのビジネスパーソンがこのメンタルマップを持っている。
専門用語は、複雑なシステムで共同作業をしている人々の間で自然に生まれるものだ。
不幸な読者が突然、友人や家族とともにエイリアンの宇宙船に乗って地球から何光年も離れた場所に飛ばされ、第一原理からどうやって家に帰るかを考えなければならなくなったとしよう。
最初の数日は、ただ適当にボタンを押すだけかもしれないが、すぐにどのボタンが何をするのかがわかるようになり、お互いに指示を出し合えるようになる。 点滅装置の近くにある赤いボタンを押して、レーダー装置のそばにある大きなレバーを投げるんだ」と言うかもしれない。
数週間もすれば、船の関数を説明する言葉を採用するようになり、より正確になっていった:「貨物室3の酸素濃度を上げる」とか、「小型スラスターのスイッチを入れる」とか。数ヵ月後には、複雑なプロセス全体を表す言葉を採用するようになる:"着陸シーケンス開始 "とか "ワープ準備 "とか。このプロセスは、共有用語集を作るための正式な努力をしなくても、ごく自然に起こるだろう。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access