您好,登錄后才能下訂單哦!
CQRS 意味著命令和查詢的責任是分離的。很多人錯誤的認為CQRS是一個整體架構,其實,CQRS這個一個小的模式,這個模式由Greg Young和Udi Dahan首次提出. 他們從Bertrand Meyer的《Object Oriented Software Construction》中獲取的命令和查詢分離模式的靈感。在CQS背后的主要觀點是:"一個方法應該改變一個對象的狀態,或者返回一個結果,但不是二者兼具。換句話說,問一個問題不應該改變問題的答案,更正式的,一個方法只有被引用透明(referentially transparent)并且沒有任何副作用的時候才會有返回一個值。
正因如此,我們把方法劃分為兩種:
Commands - 改變一個對象或整個系統的狀態
Queries - 在不改變對象的狀態的情況下返回結果
在現實中,可以很簡單講清楚什么是什么。Queries會聲明返回類型,commands沒有返回值. 這種模式是普遍適用的,它會讓對象更加簡單。換句話講,CQRS只適用于解決特定問題.
很多應用程序使用主流讀和寫來構建對象的方法。對于同一個模型(model)用讀和寫會造成model更加復雜,維護和優化都非常困難。
這兩種模式的真正策略是你可以將修改狀態和不修改狀態的方法分離開,這種分離可能造成在處理性能和調優時變得困難,你可以在寫的部分來優化系統中被分開用做讀的部分,寫的部分是已知的領域,這個領域包含所有的行為,讀的部分被指定為報表提供服務。
這種模式在一個很大的應用程序的另外的一個好處是,你可以將開發人員分配到更小的團隊中去完成這個系統的不同任務(只完成讀或寫),而不用關心其他的任務。例如,開發讀部分的人員不需要明白領域模型。
查看原文:Kanasz Robert
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。