little-hands/ddd-q-and-a-trial

リポジトリーについての質問です。

Opened this issue · 0 comments

Question

リポジトリーについての質問です。
CQRSの拡張なのかもしれないですが、参照用のリポジトリーは参照のパターン毎にインターフェイスがあった方がモックを作るのが楽なのですが、有りですか?実装は同じものを使ってます。

Answer

「参照用のリポジトリ」と言われているので、これはまさにCQRSですね。その場合、ドメインオブジェクト(エンティティ、値オブジェクトなど)ではなく、参照専用のオブジェクト(私はDTOという命名を使います)を返します。

その際、参照のパターンごとにインターフェイスを作るのはいいことだと思います。CQRSの参照モデルは、複数のユースケースで使い回すと、最大公約数的なオブジェクトになり、一部の値は一部のユースケースでしかつかない、と言ったことが発生して保守性が下がるからです。
テスト観点からも良さを感じているのであれば、なおさら良いことだと追います。

CQRSについてはこちらの記事、
https://little-hands.hatenablog.com/entry/2019/12/02/cqrs

もしくはこちらの書籍にも解説がありますので、よろしければ参照されてください。
https://little-hands.booth.pm/items/1835632