考える場所

ココロとカラダ、思考する全部

CQRSの小さな演習

CQRSの小さな演習(last) CQRS

前回まではコマンド側のクラス構成を中心に見てきました。今回はクエリ側も含めてデータ取り扱い方を俯瞰して考えてみたいと思います。 クエリ クエリは画面表示上の都合のためにあります。クエリ側のオブジェクト(以降、DTO)とコマンド側のオブジェクト(…

CQRSの小さな演習(番外) バリューオブジェクト

たとえば、エンティティがIDをもっていて、これをどうやって表現するかを考えてみます。MySQLでauto incrementの数値だからintかな?とか、UUIDだからStringかな?とかって考えますよね。だけど、その前に、エンティティにとってはそれが数値であっても文字…

CQRSの小さな演習(5) リポジトリ

MySQLを使っていてもPostgreSQLを使っていても、JNDIでデータソース(JDBC)を取得することによって、ベンダー依存しないデータベースアクセスをすることができます。リポジトリはこれをもっと抽象化して、エンティティ(集約)を取得するインタフェースを考…

CQRSの小さな演習(4) エンティティとファクトリ

前回、ドメインにおけるイベントとコマンドについて考えてみました。今回はコマンドをどのようにイベントに繋げていくかを見ていくことにします。 エンティティ(集約) 分かりやすいところでイベントFixedとDidの発生から考えます。 これらのイベントはエン…

CQRSの小さな演習(3) ドメインイベント

データ更新を伴う業務の出来事に関する処理と、レポートするための画面表示に関する処理を同じに書こうとすればそのアプリケーションを複雑にしてしまいます。複雑であるとは、ふたつ以上の関心事が同じ所にあるということです。Webアプリケーションではリク…

CQRSの小さな演習(2) 設計の枠組み

「ドメインモデル貧血症」や「利口なUI」と言われるアンチパターンがあるのは、そのパターンをやってしまいがちだからだと思います。そうでなければわざわざアンチパターンとして識別するような名前をもたなかったでしょう。データベースから取得したなんと…

CQRSの小さな演習(1) 現実の問題

仕事で業務向けのWebアプリケーション開発をしています。その中でもいろいろな問題がやはりあるのですが、特に大きな問題だなと思えることがあります。エンハンスや保守改修が続くと、もうなにがなんだったか分からなくなってしまうことです。私はもう20代で…