2013-07-12 100 views
1

我一直在研究DDD & CQRS和我想知道正確的方式來呈現一個場景,其中應用程序實際上是用來報告用戶已經完成(用戶都在界面和命令名稱)。CQRS - 命令,時態

假設我正在執行一個跟蹤用戶活動的應用程序,並且有一組預定義的有效活動:游泳,飲食等。撇開關於這個域是否足夠適合CQRS的討論(因爲即使這不是我相信會有一些非常協作的領域,可以幫助他們進行類似的語義分析),我想知道:在用戶界面上,我是否提供了按鈕,說'去游泳','吃'等等,用相似命名的命令還是我喜歡用'報告游泳','記錄午餐'等?

回答

1

答案在你的問題。我想說的線索是你如何描述「什麼是用戶已經完成用於報告」應用

按鈕的目的將是報告過去的活動,這樣的命令應該被命名爲'報告游泳「和事件」報告游泳「。

我也遇到過類似的情況,結果發現,「報告」命令和「報告」事件很好地工作

+0

謝謝@danielfishr。聽起來很合理。如果我沒有得到更好的答案,我會接受。 – Tolu

1

聽起來你正在錄製的事件。事情已經發生,應該以某種方式進行跟蹤。因此你根本不會發送任何命令。只需發佈相應的事件並根據需要在您的域中處理它們即可。

+0

事件是否可以直接從客戶端提出? – Tolu

+1

要麼(如果客戶端是可信來源),要麼可以在應用程序服務級別提升事件。沒有規則規定每個事件都必須來自域模型,或者它必須有前一個命令。從系統的角度來看,事件可能無處不在。無論如何,這將如何與外部組件集成。 –

+0

域如何接收這些事件?顯然他們不是來自命令總線(出於顯而易見的原因;-))。這是否意味着除了命令總線之外還有一個事件總線和一個運行該域的「事件處理程序」,或者......? –