仍在深入研究CQRS實現實驗,並決定從頭開始重新啓動我的博客並將其用作沙盒。CQRS/DDD:虛擬博客/ post/category/tags示例
我讀了很多關於有界環境的知識,在我看來,這是所有這些方法中最微妙的方法,也許是解釋和應用於真實項目中最困難的事情。
幸運的是,在這裏我的域名是很簡單;-)
我試圖找出不同的限界上下文,並確定哪種模式成爲這三個方面的總根源。
域名規則很簡單:
當作家組成一個博客後,他必須選擇一個類別救他後中,他可以任選選擇多個標籤改善他的後知名度
當讀者訪問的博客,他可以通過類別職位或標籤
由於只有這些規則瀏覽博客,我們已經得到一些界背景,是我對 ?
用戶(作家)組成帖子上下文。在這種情況下,後是聚合根
用戶(讀者)按類別瀏覽帖子。在這種情況下,類別是聚合根。
用戶(讀者)通過標籤瀏覽帖子。在這方面,好吧,我不確定... ;-)
我在想事情是對的嗎?
鑑於我是(正確),我想知道,在實現這個時,誰負責創建不同的對象和關係?
以用戶編寫新博客文章爲例,我真的沒有任何線索我應該在哪裏創建標記實例,以及我是否應該在Post和其標記之間創建關係寫模型。同樣的類別,不知道:p
此外,是否有界的上下文意味着一個特定的模型?這意味着對於每個有界的上下文,我會有一個不同的對象圖(在寫模型中)?
需要一些腦電波看到這個明顯的在我的腦海;-)
對於添加一個新的職位,到目前爲止,我的控制器詢問命令總線來處理「ComposeCommand」,處理程序(PostService)創建一個新的「Post」實例,在其上調用一個組合方法,並最終要求寫入持久性來保存新的Post。
Post :: compose()方法引發一個「PostComposedEvent」事件,讀取模型將偵聽它以更新其數據。
在這一切中,我不知道如何引入「類別」和「標籤」。
謝謝。
「我在這裏的域名非常簡單」。在這種情況下,你可能只有1個有界的上下文。也許你錯誤地將有限上下文聚合起來? – Steven