😊
DDD(ドメイン駆動設計)を知らない人にわかりやすく説明するためには
概要
DDDを知らないエンジニアの人に「DDDって何?」と聞かれるたびに何て答えよう..簡潔に答えるの難しってなったので考えをまとめます。
DDDって何〜?一言で
「時間がねえんだ、前置きいらないから一言で教えてくれ!」って人向け
DDDは「ソフトウェアの開発手法の1つ」
フレームワーク?アーキテクチャ?概念?、いいえ、違います”開発手法”!!!!
※または"設計手法"でも良いと思う
DDDって何〜?もうちょい詳しく
そもそもドメインって何?
そもそも「ドメイン」とは、ソフトウェアが問題解決しようとする対象領域のこと。
例としては下記。
- 会計システムにおける「金銭」、「振込処理」
- SNSにおける「投稿」、「ユーザー」
- 物流システムにおける「倉庫」、「貨物」、「輸送手段」
うん、それで結局DDDって何?
DDDとは、
「ソフトウェアで解決したい部分に焦点を当て、開発者だけでなくソフトウェアで解決したい部分に詳しい人も交えて業務の要件やビジネスルールについて話し合った上で、それをコードに落とし込む開発手法」 っていうことだと思っています。
もっと簡単にいうと
「ソフトウェアで解決したい部分をちゃんと理解した上で、ソフトウェア開発を行う」といった意味合いになるかなと。
ん?当たり前のことやんけ?って思いますよね。
でもその当たり前が難しいから、補助的な役割でDDDという開発手法に則って開発をすればより実現しやすくなるということだけなのです。
※「モデル」や「ドメインモデル」っていう言葉がDDDを説明する上で必要不可欠なのですが、「モデル」がまずDDD初学者を混乱させる根源だと思っているので、気合で省きました。
参考
Discussion