首頁 搜尋 我的知識庫
CQRS命令查詢職責分離模式

CQRS命令查詢職責分離模式

作者: Ajay Kumar
出版社: 博碩
出版日期: 2021/07/06
ISBN-13: 9789864347926
書店 1






內容描述


CQRS命令查詢職責分離模式
  Command Query Responsibility Segregation

  在DDD的領域中,CQRS模式經常被人誤解,應用在現實世界的軟體專案時更是如此。在本書中,我們將學習與CQRS有關的一切,例如:Event Sourcing、如何針對讀取與寫入的不同來設定資料庫等等。

  首先,本書將介紹什麼是CQRS,探討其背後的精神與原則,以及它可以為專案帶來的好處。接下來,我們將說明CQRS的常見誤解與反模式(Anti-Pattern)。我們將討論一個專案範例,逐步且詳盡地展示CQRS實作,這個範例如同我們在現實世界中會遇到的需求,而本書將帶領各位體會CQRS的奧祕。

  讀完這本書,你將對CQRS模式以及如何在軟體專案中實作CQRS有更紮實的理解。

  在這本書中,你將學到:
  ・重構為任務型介面,並遠離CRUD思維
  ・實作命令與查詢處理器的修飾器
  ・分離出另外一個讀取專用的資料庫
  ・與CQRS相關的常見誤解,以及最佳實務建議

專文推薦
  
  『我在北科大資工所兼差教軟體架構,課程結合領域驅動設計、Event Storming、CQRS、Clean Architecture、Event Sourcing與TDD。本書雖名為CQRS但卻不只是CQRS,若可融會貫通書中內容,對於靈活運用上述技術亦有莫大助益。』-「搞笑談軟工」板主Teddy Chen 

  『台灣很少有關於CQRS模式(可以想成是讀寫分離模式)的專書,就算是外文書專門講CQRS模式的也不多,而我發現,在AI與爬蟲應用越來越多的時代,很多應用都需要使用這種技術,於是萌生引入CQRS書籍的意念。……台灣太需要關於這類議題的書籍了。』-博碩文化 總編輯 陳錦輝


目錄大綱


導讀
推薦序
總編輯的話

Chapter 1:CQRS簡介
CQRS的由來
CQRS的必要性為何
真實情境中的CQRS
本章小結

Chapter 2:範例專案
議題領域說明
簡述應用程式碼
潛在的問題
本章小結

Chapter 3:重構為任務型介面
CRUD介面
任務型介面
拆解update方法
回顧:拆解update方法
任務型的使用者介面
新增與刪除方法
本章小結

Chapter 4:命令與查詢分離
第一道「命令」
CQS與CQRS在命令上的差異
CQRS中的命令與查詢
洋蔥式架構下的命令與查詢
命令與DTO物件
利用Spring框架來建立命令處理器
關於查詢
本章小結

Chapter 5:在命令與查詢處理器上實作修飾器
新需求來了!重試資料庫連線
實作資料庫重試修飾器
修飾設計模式
再來一份修飾器吧
命令與查詢處理器的最佳實務指引
本章小結

Chapter 6:簡化讀取資訊模型
關於讀取資訊模型
領域模型的分離
簡化讀取模型
重點回顧:簡化讀取模型
洋蔥式架構與讀取模型
本章小結

Chapter 7:查詢專用資料庫
關於可擴充性
實務上的資料層級分離實例
設計查詢專用資料庫
建立查詢專用資料庫
重點回顧:建立查詢專用資料庫
可擴充性
建立讀取資料庫時要三思的事情
本章小結

Chapter 8:同步命令與查詢資料庫
狀態驅動投影
同步式的狀態驅動投影
事件驅動投影
一致性
最終一致性
版本控制
CQRS與CAP定理
本章小結

Chapter 9:CQRS的最佳實務與常見誤解
CQRS與Event Sourcing
演化式設計
處理器中發出的命令與查詢
單向命令
CQRS與規格模式
全書總結


作者介紹


作者簡介

Ajay Kumar

  ・Amazon的作者頁面:amazon.com/author/ajaykumar
  ・Email:ajaycucek@gmail.com、ajaxreso@gmail.com
  ・Linkedin:www.linkedin.com/in/ajaycucek
  ・Facebook:www.facebook.com/ajaycucek
  ・Youtube:www.youtube.com/channel/UC1uXEebtqCLYxVdzirKZGIA
  ・Twitter:twitter.com/ajaycucek
  ・Instagram:www.instagram.com/ajaycucek/
  ・Skype:ajaycucek






相關書籍

大師養成起手式:從核心真正了解Linux運作原理

MOS國際認證應考指南--Microsoft PowerPoint Associate(PowerPoint and PowerPoint 2019) | Exam MO-300

AI世代必備!Python×ChatGPT高效率工作術:從網路爬蟲到辦公室自動化超實務

動手玩Python / MicroPython:ESP32物聯網互動設計