DDD聚合的再一次定義 - Mathias Verraes

19-10-18 banq
         

聚合這個詞語由于非常廣泛且通用,有可能導致很多人無法抓住其中心要旨,著名領域設計專家Mathias Verraes對聚合重新進行了一次定義:

通過定義事務邊界,并發邊界和分發邊界來強制一組相互關聯的約束的一致性的架構模式。

         

2
fateson
2019-10-25 19:22

重新定義了還是不懂 。

banq
2019-10-28 10:28

聚合設計和發現的重點關鍵是以什么標準定義邊界?

以事務或交易為邊界設計,事務或交易英文都是transaction,交易是業務用詞,事務是技術用詞,如果業務上不重視交易設計,只能靠技術上事務機制完成,如ACID或2PC等,業務上重視交易邊界就是重視一詞交易過流程,在整個交易流程中有哪些環節點或能力片?例如,挑選商品,下單,支付,發貨,收貨這是電商系統的四個環節,整個是一個流程,每個環節其實是一個交易環節,也就是交易邊界,也就是事務邊界,也就是聚合點了。

事務邊界注重的是單線流程、串行過程,還要注重并發并行過程,發現并發點在哪里,那里就是聚合點,本來大家是各走各的路,業務本來是各有各的流程,但是慢慢地一些流程匯聚到一起,如同在地鐵站排隊一樣,地鐵站成了匯聚點,匯聚的那個點就成了并發點,如果沒有匯聚點,就沒有并發點,也就沒有并發,只有純粹的并行了,大家還是各走各的路。

分發邊界意味著一次構建 測試 發布的范圍大小,如果整個系統幾百兆的Jar包,肯定是單體糨糊了,這里有微服務概念在里面,按照團隊經常需要修復 構建 發布而不影響其他功能的邊界為劃分依據,這樣說明聚合自然在其中,否則你無法只發布這幾個功能而不影響其他功能啊。

以上只是個人理解。

美女漫画大全