函數響應式領域建模 Functional and Reactive Domain Modeling

德巴斯什·戈施 (Debasish Ghosh)

買這商品的人也買了...

商品描述

傳統的分佈式應用不會切入微服務、快速數據及傳感器網絡的響應式世界。為了捕獲這些應用的動態聯系及依賴,我們需要使用另外一種方式來進行領域建模。由純函數構成的領域模型是以一種更加自然的方式來反映一個響應式系統內的處理流程,同時它也直接映射到了相應的技術和模式,比如Akka、CQRS 以及事件溯源。本書講述了響應式系統中建立領域模型所需要的通用且可重用的技巧——首先介紹了函數式編程和響應式架構的相關概念,然後逐步地在領域建模中引入這些新的方法,同時本書提供了大量的案例,當在項目中應用這些概念時,可作為參考。

作者簡介

譯者簡介
李源,曾在華為技術有限公司工作8年,經歷過開發、SE、PM和PQA等多個崗位,目前在途牛旅遊網擔任研發總經理一職,是美國質量協會(ASQ)註冊質量工程師(CQE);譯者有豐富的開發、架構設計及研發管理經驗,先後負責過多個大型項目的方案設計和系統規劃,對於C++、Java以及設計模式等領域都有比較深入的研究;曾翻譯《Java性能調優指南》一書。

目錄大綱

1.函數式領域建模:介紹......................................... ..................... 1 
1.1什麼是領域模型....................... .................................................. ..................... 2 
1.2領域驅動設計介紹....................... .................................................. ................. 4 
1.2.1邊界上下文........................... .................................................. ............. 4 
1.2.2領域模型元素.............................. .................................................. ...... 5 
1.2.3領域對象的生命週期................................... ....................................... 8 
1.2.4通用語言..... .................................................. ..................................... 13
1.3函數化思想.............................................. .................................................. .... 14 
1.3.1哈,純粹的樂趣..................................... ........................................... 17 
1.3.2純函數組合.................................................. ...................................... 21 
1.4管理副作用........ .................................................. .......................................... 26 
1.5純模型元素的優點. .................................................. ..................................... 28 
1.6響應式領域模型....... .................................................. ................................... 31 
1.6.1響應式模型的3+1視圖... .................................................. ............... 31
1.6.2揭穿“我的模型不能失敗”的神話..................................... ........... 32 
1.6.3伸縮性與消息驅動.............................. .............................................. 34 
1.7事件驅動編程................................................. ............................................... 35 
1.7. 1事件與命令.............................................. .......................................... 37 
1.7.2領域事件.. .................................................. ........................................ 38 
1.8函數式遇上響應式.. .................................................. .................................... 40 
1.9總結........... .................................................. .................................................. . 41

2 Scala與函數式領域模型........................................... ...............42 
2.1為什麼是Scala .............................. .................................................. ............... 43 
2.2靜態類型與富領域模型........................... .................................................. ... 45 
2.3領域行為的純函數........................................ ................................................ 47 
2.3 .1回顧抽象的純粹性........................................... ................................. 50 
2.3.2引用透明的其他好處........ .................................................. .............. 53 
2.4代數數據類型與不變性............................ .................................................. .. 53
2.4.1基礎:和類型與乘積類型........................................ ........................ 53 
2.4.2模型中的ADT結構數據................ .................................................. 56 
2.4.3 ADT與模式匹配.......................................... ..................................... 56 
2.4.4 ADT鼓勵不變性..... .................................................. ........................ 58 
2.5局部用函數,全局用OO................. .................................................. ........... 59 
2.5.1 Scala中的模塊............................... .................................................. . 60 
2.6用Scala使模型具備響應性........................................ .................................. 64
2.6.1管理作用............................................. ............................................... 65 
2.6. 2管理失敗............................................... ............................................. 65 
2.6.3管理延遲................................................. ........................................... 67 
2.7總結.... .................................................. .................................................. ........ 69 

3設計函數式領域模型................................... ............................70 
3.1 API設計的代數................ .........................................