DDDとは?

公開日:2019-07-07
最終更新:2019-07-07

開発チームに「設計・開発手法にDDDを採用しませんか?」と提案したわけですが、そもそもDDDとは何なのという質問を受けます。自分なりの解釈、自分の言葉でエンジニアにも非エンジニアにも興味を持ってもらえる回答を考えてみます。

自分の言葉でと言いましたが、参考にしたものはあります。いつもお世話になっている little hands' lab ブログの「非エンジニアの方に「DDDって何なの?」と聞かれたときの説明」という記事です。この記事を読んだ上で自分なりの解釈で以下のようにDDDを説明しました。

DDDとは?

  • 設計・開発手法の1つです
  • オブジェクト指向を使って、業務領域の問題解決をする、設計と実装のベストプラクティスです
WHW 説明
Why 実際の業務を反映しないと、不評なものが出来る
整理して作らないと、あとから修正するのがどんどん大変になる
How 業務領域に従って、システムを適度にコンパクトに分割する
仕様と実装の乖離をなくす。現実 → モデル → コード
業務領域のクラスライブラリ(ドメインモデル)を作成する
ドメインモデルに不変条件を実装することで、ドメインモデルを使ってアプリケーションを作成するプログラマがミスをできなくする
What ビジネス要件に合ったシステムができる
変化に強く、柔軟性の高いシステムが出来る
保守・機能追加時の影響範囲を最小限にできる

こんな感じで説明をしました。
加えて、 little hands' lab ブログの「モデルでドメイン知識を表現するとは何か」の記事を紹介させていただき、コードで以下の内容を説明しました。

  • Bad パターン
    • ドメイン貧血病
    • トランザクションスクリプトで書かれたアプリケーション
  • Good パターン
    • 不変条件を実装したドメインモデル
    • ドメインモデルを使って書かれたアプリケーション

ここまでの説明で、DDDの具体的なプロセスはまだモヤっとしている物の、考え方、コンセプトとしては「いいね、いいね」と言っていただき、やっていく方向になりました。

記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
DDDやアジャイルに挑戦する記録

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする