読者です 読者をやめる 読者になる 読者になる

たなかこういちの開発ノート

システム開発に携わる筆者が、あれこれアウトプットするブログ

DDD

DDDと目的-目標-手段に関するポエム^H^H^Hエッセイ

DDD

DDDは、カオスの辺縁を追求するような作業であって、「明らかに誤り」というのはわかっても、「十分に成功した」かどうかは常にわかりにくいのだと思う。 DDDの実践は実際には古くて、自分の観測範囲としては、2000年ごろには、オブジェクト指向の行き着く先…

境界付けられたコンテキストの階層的認識について

要約 境界付けられたコンテキストは、次のように階層的に認識すべきだろう。 (1) 複数のステークホルダー同士が一式の業務用語セットを共有している範囲としてのコンテキスト *一般に複数のサブドメイン横断的である。 (2) (1)のコンテキストと、サブドメイ…

参照系と更新系の非対称性について、追補

以前の記事を補足、あるいは主張を一部修正するものです。 〜・〜 サブジェクト指向とは? ある要求仕様のセットがあったとき、そこに仕様変更のライフサイクルに違いのあるサブセットが認められるならば、それらは、同一のデータ資源(=オブジェクト)に関…

「DDD座談会」に参加してきました

6月5日に開催された、かとじゅん氏(Twitter:@j5ik2o)主催の「DDD座談会」に参加してきました。 後半戦、アルコール後は、文字通りの座談会となり、大いに盛り上がりました。 #dddzk 盛り上がってきたww pic.twitter.com/Ytgj21us5G— なおぴ! (@naopi) 201…

業務プロセス全域をデザインするにおいて、境界付けられたコンテキストを如何に捉えるかという話

要約 エンタープライズ・システムでは、同じ用語でも、部門や担当が異なれば意味も異なっている、という状況は日常的です。各担当が各人のリアルとして見ている個々の"Fact"と、全ての担当の見解を統合的に説明できる“イデア”であり仮説である"Truth"には、…

参照系と更新系の非対称性について

要約 (1) 参照系の要件はもっぱらデータ資源利用側から発せられ、更新系の要件はもっぱらデータ資源提供側から発せられる。 (2) よって、もし「フロントエンド・アプリ」と「バックエンド・サービス」とに階層分けするならば、参照系は「フロントエンド・ア…

ドメインとデータ、サブジェクトとオブジェクト、および、事実は常に事実であり、真実は常に仮説である、という話

先日参加の「PHPメンターズセミナー」には相当に触発されました。本記事はその勢いのままに書いたエントリーとなります。 ※下記記事もご参照ください。 →《PHPメンターズセミナーに参加してきました》 〜・〜 突然ですが、下図は、視点Aから見ると対象物は四…

PHPメンターズセミナーに参加してきました

去る10月3日(土)、「PHPカンファレンス2015」に併設開催の「PHPメンターズセミナー」に参加してきました。 「PHP」関連のカンファレンスではあるのですが、メンターズセミナーの副題は「モデルを設計せよ!-ドメイン駆動設計を超えて」です。しかもツイッ…

モデリングとドメインについて

モデルおよびモデリングとは? 「モデル」とは「対象を如何に認識しているかを形式的に描いたもの」と説明できるでしょう。このことを分解していきます。まず、「対象の認識の仕方についての方法論」があるでしょう。どうやって対象を観測するか、観測結果を…

「サブジェクト指向」について(私的実践DDD、その4)(2 of 2)

(※前回からの続きです。) サブジェクトにおいてリポジトリーと集約はいかなる構造を取るか? ここまでで次のような疑問を持たれた方もいらっしゃるでしょう。 『サブジェクトの捉え方は理解したとして、その場合集約やリポジトリーはどのように設計される…

「サブジェクト指向」について(私的実践DDD、その4)(1 of 2)

(※前回からの続きです。) 「サブジェクト指向」の考え方は、オブジェクト指向分析・設計における「関心の分離」に関わる一つの方策として古くから提唱されているものです。人によって多少ニュアンスに違いがありますが、私はおおよそ下記記事が説明すると…

私的実践DDD、その3

(※前回からの続きです。) 「境界付けられたコンテキスト」は常に理想形を、「サブドメイン」はその時の現実を表す まず確認すると、「リポジトリー」や「集約」はシステムの設計・構築レベルの話でしたが、「境界付けられたコンテキスト」や「サブドメイン…

私的実践DDD、その2

(※前回からの続きです。) CQRSはモデリング上の本質的な課題への対応である CQRS(Command-Query Responsibility Segregation、コマンド・クエリ責務分離)の採用は、現代的なシステムではほぼ全て必然的にそこへ帰結すると考えた方がよいと思います。CQRS…

私的実践DDD、その1

ようやく「実践ドメイン駆動設計」を読み終わりました。 髙木正弘訳、ヴァーン・ヴァーノン著、「実践ドメイン駆動設計」 実際にありそうな開発プロジェクトのストーリーに沿うかたちで話が進められます。コードExampleが極めて具体的に示されて、どうすべき…