CQRS & Event Sourcing — 解決檢索應用程序狀態問題的一劑良方
現在,每個開發人員都很熟悉MVC標準體系結構設計模式。大多數的應用程序都是基於這種體系結構進行創建的。它允許我們創建可擴展的大型企業應用程序,但近期我們還聽到了另外的一些有關於CQRS/ES的相關信息。這些方法應該被放在MVC中一起使用嗎?他們可以解決什麼問題?現在,讓我們一起來看看CQRS/ES是什麼,以及他們都有哪些優點和缺點。
CQRS — 模式介紹
CQRS(Command Query Responsibility Segregation)是一種簡單的設計模式。它衍生與CQS,即命令和查詢分離,CQS是由Bertrand Meyer所設計。按照這一設計概念,系統中的方法應該分為兩種:改變狀態的命令和返回值的查詢。Greg young將引入了這個設計概念,並將其應用於對象或者組件當中,這就是今天所要將的CQRS。它背後的主要思想是應用程序更改對象或組件狀態(Command)應該與獲取對象或者組件信息(Query)分開。
下面,將通一張圖來說明應用程序中有關CQRS部分的組成結構: