システム開発の本でよく見かける「ドメイン駆動設計(DDD)」。なんだか難しそうな言葉ですが、ざっくり言うと「お客さんの仕事のしくみに合わせてシステムを作りましょう」という考え方です。洋服でいえば、体に合わせて仕立てるオーダーメイドのイメージですね。
では、その反対はなんでしょう? この資料では「実装駆動」と呼んでみます。「よく切れる包丁を買ったから、今夜は刺身にしよう!(お客さんはカレーが食べたいのに)」——道具の都合でメニューが決まってしまう状態のことです。
実装駆動は悪いことではありません。良い道具を使いこなすのは素晴らしいことです。ただ、「道具の都合で決めていることに自分で気づいていない」と、話し合いがすれ違ってしまうかもしれません。
この資料では、難しい専門用語は使いません。身近なたとえ話をたくさん使いながら、明日の打ち合わせからすぐ試せる3ステップ
「出発点を確認する」
「ラベルを貼る」
「順番を整理する」
を紹介します。
まずはステップ1だけでも、ぜひやってみてください。きっと新しい発見があるはずです。
記事一覧
【 設計編 #1 】 「ドメイン駆動」と「実装駆動」ってなに?
`軽量DDD` `設計判断の出発点` `DDDの肯定形の対義語`
【 設計編 #2 】 持ち主の寿命のはなし
`所有性` `依存先の寿命` `公共構造(SQL・HTTP)とベンダー製品`
【 設計編 #3 】 規約による保護と、構造による保護
`ポカヨケ` `型と制約で守る` `人依存の規約は最下位層`
【 設計編 #4・本編最終回 】 何があなたの手を動かすのか
`変更理由の出所` `単一責任原則の「責任」` `要求の駆動源`