【メモ】DDDとは何か

たまに耳にするキーワードDDDをほんの少し調べました。

ざっくりいうとこういうこと。

  • DDDとは
    • ドメイン駆動設計(Domain-Driven Design)のこと
    • この本のこと*1
  • DDDを勉強すると
    • システムの分析設計をする上で、必要となってくる

ノウハウをパターンとして整理できる

    • ドメインモデルをどのようにソフトウェアへと落とし込んでいけば良いのか等が分かる

DDDを俯瞰するサイトはこちら*2

このサイトでDDDを俯瞰することが出来ます。

  • DDDを知るべき人

日頃、以下のようなことを問題として認識している方は、DDDがその解を提供してくれる可能性があります。

    • 要件・仕様の決定において、顧客と話が噛み合わない
    • 詳細設計まで内製し、実装を外注しているが、成果物に不満足
    • ソフトウェアの仕様書と実装が乖離していて、ソースコードしか信用できるものがない

このサイトからDDDのキーワードを拾ってきました*3

  • DDDの要点は、次の3点にまとめられます。
    • ドメインモデルは、ドメイン知識を深めながら反復的(iterative)に深化させていく
    • ドメインモデルが、開発者とドメイン知識をもつ人(ユーザ、専門家等)との間の共通言語となるようにする
    • ドメインモデルと実装コードとがきちんと対応付けられるようにする
  • DDDは、ノウハウをパターンの形式で体系化