2011-07-29 6 views
3

私がマーティンFowlers最近のポストごとCQRS(コマンドクエリレスポンス分離)の周りに私の頭をラップしようとしている:Rails環境でのCQRS?

Main Database (Postgres): 
    Product has many Sales 
    User has many Sales 

Reporting Database (NoSQL - Mongodb) 
    Transaction (A Product and a Sale and a User) 

そして生産の要件:プロジェクト

http://martinfowler.com/bliki/CQRS.html

を考えますある月の1日あたりの取引金額のチャート。

  • 報告するコントローラは何ですか?
    • Aビューおよびパーシャルのレポートコントローラ
    • レポートの特定の情報をレポートDBから取り出すためのグラフコントローラ?
  • この場合、DTO(データ転送オブジェクト)はどんな状態になるでしょうか?
  • これは本当にCQRSですか?
    • レポートDBから作成されたレポート/グラフは状態を変更しないため、メインDB上のビューは変わっていないと思いますか?

ありがとう!

+1

これも読んでみてください。http://www.udidahan.com/2011/04/22/when-to-avoid-cqrs/ –

答えて

2

まだCQRSをRailsで調べることに興味がある人はrcqrsを見てください。Ruby CQRS with Event Sourcingライブラリを作成しました。

CQRSパターンを使用してコマンド、イベント、コントローラを作成するための一般的なタスクを容易にするジェネレータに付属するRailsアプリと統合するためのRails 3 pluginもあります。

最後に、RailsでCQRSをどのように使用するかを調べるための非常に簡単なサンプルブログRailsアプリケーションがあります(詳細は私のGitHubアカウントを参照してください)。

+0

CQRSをRailsアプリケーションに適用するための基本的な手順については、LuismiCavalléのプレゼンテーション["the CQRS diet"](http://www.slideshare.net/cavalle/the-cqrs-diet)をお勧めします。原則。 –

+0

涼しい、よさそうだ –

2

CQRSの詳細については、適用する前にまず読んでください。 CQRSはコマンドクエリレスポンスセパレーションではなく、コマンドとクエリの責任セグメンテーションであるためです。

グレッグ・ユングcqrs infoとcqrsに関する記事はUdi Dahanとマーティン・ファウラーによって読まれることをお勧めします。その後、cqrsの実装が存在するかどうかを見てください。

通常、cqrsには2つのデータベースがあります:読み取りと書き込み。 書き込みデータベースは通常正規化されたストアです。データベースの読み込み - 指定されたデータセットを取得するために必要な結合の数を最小限に抑えるために、非正規化形式のデータを含むデータベース。

+0

はい、正しくあります。名前が混ざりました。おかげさまで参考になりましたが、私が言及した実装がCQRSとして認定されているかどうか、そしてその中のDTOの役割についての私の中心的な問題に実際には達しません。 –

+0

CQRSInfoリンクが意味的に壊れています。ドメインがハイジャックされたため、正しいリンクではありません。 architecture.jayway.comにガイダンスがあります。 – Henrik

関連する問題