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

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

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

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

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

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

「リアクティブなんとか」はエンタープライズに何をもたらすか?

そもそも「Reactive」とは何か? まずは参考資料をリストします。 InfoQより、「注目を集めるリアクティブプログラミング」: http://www.infoq.com/jp/news/2013/09/reactive-programming-emerging ※オーバービューとして マルレク、2013年1月21日、開催テ…

私的実践DDD、その3

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

私的実践DDD、その2

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

私的実践DDD、その1

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

キャシュ層を挟む

以前の記事で、フロントエンド-バックエンドのI/Fをどうするか話しましたが、ここにRead Cache層を差し込んでみます。 キャッシュは、最近の大規模サービスではほぼ必須の技術要素といえます。実装としては、memcachedやRedisといったインメモリーKVSがよく…

要件から設計する行為を、「Object」、「Subject」、「Attribute」、「Projection」で説明してみる

(Domain's) Objectとは? 業務プロセスに対する要求・要件の分析観点で抽出される、業務上のひとつの“管理対象”を認識したものを「(Domain's) Object」と、ここでは称することとします。「業務上のひとつの“管理対象”」とは、、業務プロセス内にひとつの部分…

業務プロセス、業務ロジックの理解と、フロントエンド−バックエンド間I/Fの詳細

下記は一般的なn層アーキテクチャーの図です。各層をここでは「Presentation」、「Business Logic」、「Data Access」と表現しています。 ただしいくつか特徴があります。一点目は、参照系と更新系のBusiness Logicを分別して表現していること。二点目は、「…

エラーケースのパターン分類〔ライブラリ実装編〕

(※〔運用編〕からの続きです。) エラーについての一連の記事では「処理」として「業務ロジック」を想定して議論を進めていました。では、その業務ロジックの実行環境・実行基盤たるフレームワークを実装するときや、日付演算ユーティリティ、XMLプロセッサ…