ドメイン駆動設計はアジャイル開発の弱点を補完する技法ではないか
増田さんのドメイン駆動設計の公開資料が素晴らしいのでリンクしておく。
ドメイン駆動設計はアジャイル開発の弱点を補完する技法ではないか、というアイデアをメモ。
ラフなメモなので、ロジカルでない。
【参考】
(引用開始)
エヴァンスが取り組んだ技術 「オブジェクト指向」と「XPスタイル」の設計 に、現場で取り組んだ成功と失敗の物語。
そこから学んだ教訓をまとめたものが 「ドメイン駆動設計」
オブジェクト指向分析設計の参考にすべき文献は多いが、現場で使える実践的なガイドが 意外と少ない
現在、DDDコミュニティの一部は、「クラウド時代のドメイン駆動設計」への挑戦と実験を盛 んに行っている
(引用終了)
「XPやScrumの母体であるアジャイルコミュニティでは、オブジェクト指向の分析設計は当たり前の手法であり、スキルだった」のに、いつの間にか、その設計技法が忘れ去られて、設計技法そのものが軽視されてしまった。
しかし、それでよいのか?
ファウラーなど、アジャイルコミュニティを引っ張ってきた人達を見ると、ビジネスモデリングもシステムの設計能力もすごく高い。
その前提が忘れられている。
実は、ドメイン駆動設計は、アジャイル開発コミュニティが忘れてきた設計技法の教訓やノウハウを集大成したもの、という指摘はすごく分かりやすい。
ドメイン駆動設計はアジャイル開発の弱点である設計技法を補完する技法と見なせば、最近すごく注目されている背景も分かるような気がする。
マイクロサービス、イベントソーシングなどの概念が次々に現れているのは、昨今のような「多産多死のWebサービス開発」で必要な技法だからだろう。
興味深いのは、昨今のドメイン駆動設計のスコープは、エヴァンズが語ってきた従来のドメイン駆動設計ではなく、クラウドに合わせたドメイン駆動設計へ進化しようと盛んに研究されている点だ。
確かに、エヴァンズのドメイン駆動設計の本の内容は、2004年頃までの内容の集大成であり、昨今のクラウド・モバイル・ビッグデータ・IoTなどの技術を前提とした設計技法ではない。
以前のノウハウや文脈では、実際の現場ではなかなか使えないのが現実だろうと思う。
個人的な直観としては、マイクロサービスのような機能の再利用性、イベントとメッセージングのようなUIの再設計が重要になるのでは、と思う。
前者は、SOAが思想として優れていてもなかなか普及しにくかった問題は、RESTやJsonの普及によって、いかに既存のWebAPIを再利用して、変更に耐えうるように、素早く開発するか、という観点に変わった。
後者は、PC時代のUIではなく、圧倒的に普及したスマートフォンに合わせたUIはアジャイルUXみたいな考え方に発展している。
そして、多数のスマートフォンが操作している背後では、Webサーバーがそれらのデータをやり取りし、プッシュ通知の仕組みを持っていたりする。
しかし、例えば、プッシュ通知の仕組みを実現するには、各スマートフォンの個人情報を保持する必要があり、状態に応じてプッシュ配信しなくてはいけない。
つまり、大量の個人情報を保持するセキュリティの仕組み、いかに大量のメッセージをさばくか、というサーバー上の仕組みが必要なのでそう簡単な設計ではないはずだ。
大手企業のように、大量のサーバーをデータセンターに持つか、クラウド環境でサーバーをスケールしやすいように設計するなどの技法が必要になってくるのだろう。
もちろん、これ以外にもドメイン駆動設計が今後深掘りすべきテーマや分野はたくさんある。
「実践ドメイン駆動設計」でもその内容は少しは触れられているので、読んでみたい。
どこかで勉強会をやっていないだろうか?
| 固定リンク
「モデリング」カテゴリの記事
- UMTPモデリングフォーラムのパネル討論の感想(2022.11.29)
- Go言語でできることは何なのか(2022.11.06)
- クラウド上の開発がJavaに与えた影響は何なのか(2022.10.16)
- 「ソフトウェアアーキテクチャの基礎」本はアーキテクトが読むべき本だった(2022.09.18)
- 組込みソフトウェア開発でUMLを使う手法を説明した書籍のリンク(2022.06.17)
「Agile」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
- DDPは品質管理に役立つのか(2022.12.13)
- UMTPモデリングフォーラムのパネル討論の感想(2022.11.29)
- XPエクストリームプログラミングは偉大だ~時代がその設計思想に追いついた(2022.11.16)
コメント