DDDのキッカケをつくるためのプレゼン
モデリングをはじめよう
View Slide
ソフトウェアって何?
プログラム?
サーバー?
エク○ル?
例
買い物するソフトウェアamaz○nみたいな
ありそうなフローϩάΠϯ͢Δݕࡧ͢ΔϖʔδΛ։͘$MJDLߪೖ͢ΔΛड͚औΔ
Login(user, password)items = Search(query)item.openPage()Buy(item)ありそうなコード
ϩάΠϯ͢Δݕࡧ͢ΔϖʔδΛ։͘$MJDLߪೖ͢ΔΛड͚औΔ
つまり
これがソフトウェアϩάΠϯ͢Δݕࡧ͢ΔϖʔδΛ։͘$MJDLߪೖ͢ΔΛड͚औΔ
そして
買い物のドメインϩάΠϯ͢Δݕࡧ͢ΔϖʔδΛ։͘$MJDLߪೖ͢ΔΛड͚औΔ
これを投影したのが
Login(user, password)items = Search(query)item.openPage()Buy(item)
で
誤解を恐れずに言えばあなたとamaz○nの間にあるユビキタス言語
ユビキタス言語?
要するに名前
名前とは名付けられたもの
名前とは意味を持つもの
名前とはより簡潔であるもの
名前とは意図を伝えるもの
名前とは使われるもの
ところで
さっきのコードはドメインを投影できていません
Login(user, password)items = Search(query)item.openPage()1ClickBuy(item)
誤解を恐れずに言えばユビキタス言語を使うということ
誤解を恐れずに言えば名前を定義し理解し使用するこれがドメイン駆動
ドメインを学ぶ
名前を知る
名前を見つける
「商品の購入」
「商品を購入したら、その情報をDBに保存する」
「商品を購入したら、注文明細を作成する」
注目すべきは名詞 と 動詞
やってみよう!