注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計

實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計

實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計

定 價:¥99.00

作 者: (美) Vaughn Vernon(沃恩·弗農(nóng)) 著 滕云 譯
出版社: 電子工業(yè)出版社
叢編項:
標(biāo) 簽: 操作系統(tǒng) 計算機(jī)與互聯(lián)網(wǎng)

ISBN: 9787121224485 出版時間: 2014-03-01 包裝: 平裝
開本: 16開 頁數(shù): 584 字?jǐn)?shù):  

內(nèi)容簡介

  領(lǐng)域驅(qū)動設(shè)計(DDD)是教我們?nèi)绾巫龊密浖模瑫r也是教我們?nèi)绾胃玫厥褂妹嫦驅(qū)ο蠹夹g(shù)的。它為我們提供了設(shè)計軟件的全新視角,同時也給開發(fā)者留下了一大難題:如何將領(lǐng)域驅(qū)動設(shè)計付諸實(shí)踐?Vaughn Vernon 的這本《實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計》為我們給出了全面的解答?!秾?shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計》分別從戰(zhàn)略和戰(zhàn)術(shù)層面詳盡地討論了如何實(shí)現(xiàn)DDD,其中包含了大量的最佳實(shí)踐、設(shè)計準(zhǔn)則和對一些問題的折中性討論。《實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計》共分為14 章,在DDD 戰(zhàn)略部分,《實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計》向我們講解了領(lǐng)域、限界上下文、上下文映射圖和架構(gòu)等內(nèi)容,戰(zhàn)術(shù)部分包括實(shí)體、值對象、領(lǐng)域服務(wù)、領(lǐng)域事件、聚合和資源庫等內(nèi)容。一個虛構(gòu)的案例研究貫穿全書,這對于實(shí)例講解DDD 實(shí)現(xiàn)來說非常有用?!秾?shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計》在DDD 的思想和實(shí)現(xiàn)之間建立起了一座橋梁,架構(gòu)師和程序員均可閱讀,同時也可以作為一本DDD 參考書。

作者簡介

  Vaughn Vernon,一個經(jīng)驗(yàn)豐富的軟件工匠,在軟件設(shè)計、開發(fā)和架構(gòu)方面擁有超過25年的從業(yè)經(jīng)驗(yàn)。他提倡通過創(chuàng)新來簡化軟件的設(shè)計和實(shí)現(xiàn)。從20世紀(jì)80年代開始,他便開始使用面向?qū)ο笳Z言進(jìn)行編程;在 20世紀(jì) 90年代早期,他便在領(lǐng)域建模中應(yīng)用了領(lǐng)域驅(qū)動設(shè)計,那時他使用的是Smalltalk語言。他在很多業(yè)務(wù)領(lǐng)域都有從業(yè)經(jīng)驗(yàn),包括航空、環(huán)境、地理、保險、醫(yī)學(xué)和電信等領(lǐng)域。同時,Vaughn在技術(shù)上也取得了很大的成功,包括開發(fā)可重用的框架和類庫等。他在全球范圍之內(nèi)提供軟件咨詢和演講,此外,他還在許多國家教授《實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計》的課程。

圖書目錄

前言
致謝
關(guān)于作者
如何使用本書
第1章 DDD入門
我能DDD嗎?
為什么我們需要DDD
如何DDD
使用DDD的業(yè)務(wù)價值
1.你獲得了一個非常有用的領(lǐng)域模型
2.你的業(yè)務(wù)得到了更準(zhǔn)確的定義和理解
3.領(lǐng)域?qū)<铱梢詾檐浖O(shè)計做出貢獻(xiàn)
4.更好的用戶體驗(yàn)
5.清晰的模型邊界
6.更好的企業(yè)架構(gòu)
7.敏捷、迭代式和持續(xù)建模
8.使用戰(zhàn)略和戰(zhàn)術(shù)新工具
實(shí)施DDD所面臨的挑戰(zhàn)
虛構(gòu)的案例,真實(shí)的實(shí)踐
本章小結(jié)
第2章 領(lǐng)域、子域和限界上下文
總覽
工作中的子域和限界上下文
將關(guān)注點(diǎn)放在核心域上
戰(zhàn)略設(shè)計為什么重要
現(xiàn)實(shí)世界中領(lǐng)域和子域
理解限界上下文
限界上下文不僅僅只包含模型
限界上下文的大小
與技術(shù)組件保持一致
示例上下文
協(xié)作上下文
身份與訪問上下文
敏捷項目管理上下文
本章小結(jié)
第3章 上下文映射圖
上下文映射圖為什么重要
繪制上下文映射圖
產(chǎn)品和組織關(guān)系
映射3個示例限界上下文
本章小結(jié)
第4章 架構(gòu)
采訪一個成功的CIO
分層
依賴倒置原則
六邊形架構(gòu)(端口與適配器)
面向服務(wù)架構(gòu)
REST
REST作為一種架構(gòu)風(fēng)格
RESTful HTTP服務(wù)器的關(guān)鍵方面 
RESTful HTTP客戶端的關(guān)鍵方面 
REST和DDD
為什么是REST?
命令和查詢職責(zé)分離——CQRS
CQRS的各個方面
處理具有最終一致性的查詢模型
事件驅(qū)動架構(gòu)
管道和過濾器
長時處理過程(也叫Saga)
事件源
數(shù)據(jù)網(wǎng)織和基于網(wǎng)格的分布式計算
數(shù)據(jù)復(fù)制
事件驅(qū)動網(wǎng)織和領(lǐng)域事件
持續(xù)查詢
分布式處理
本章小結(jié)
第5章 實(shí)體
為什么使用實(shí)體
唯一標(biāo)識
用戶提供唯一標(biāo)識
應(yīng)用程序生成唯一標(biāo)識
持久化機(jī)制生成唯一標(biāo)識
另一個限界上下文提供唯一標(biāo)識
標(biāo)識生成時間
委派標(biāo)識
標(biāo)識穩(wěn)定性
發(fā)現(xiàn)實(shí)體及其本質(zhì)特征
揭開實(shí)體及其本質(zhì)特征的神秘面紗
挖掘?qū)嶓w的關(guān)鍵行為
角色和職責(zé)
創(chuàng)建實(shí)體
驗(yàn)證
跟蹤變化
本章小結(jié)
第6章 值對象
值對象的特征
度量或描述
不變性
概念整體
可替換性
值對象相等性
無副作用行為
最小化集成
用值對象表示標(biāo)準(zhǔn)類型
測試值對象
實(shí)現(xiàn)
持久化值對象
拒絕由數(shù)據(jù)建模泄漏帶來的不利影響
ORM與單個值對象
多個值對象序列化到單個列中
使用數(shù)據(jù)庫實(shí)體保存多個值對象
使用聯(lián)合表保存多個值對象
ORM與枚舉狀態(tài)對象
本章小結(jié)
第7章 領(lǐng)域服務(wù)
什么是領(lǐng)域服務(wù)(首先,什么不是領(lǐng)域服務(wù))
請確定你是否需要一個領(lǐng)域服務(wù)
建模領(lǐng)域服務(wù)
獨(dú)立接口有必要嗎
一個計算過程
轉(zhuǎn)換服務(wù)
為領(lǐng)域服務(wù)創(chuàng)建一個迷你層
測試領(lǐng)域服務(wù)
本章小
第8章 領(lǐng)域事件
何時/為什么使用領(lǐng)域事件
建模領(lǐng)域事件
創(chuàng)建具有聚合特征的領(lǐng)域事件
身份標(biāo)識
從領(lǐng)域模型中發(fā)布領(lǐng)域事件
發(fā)送方
訂閱方
向遠(yuǎn)程限界上下文發(fā)布領(lǐng)域事件
消息設(shè)施的一致性
自治服務(wù)和系統(tǒng)
容許時延
事件存儲
轉(zhuǎn)發(fā)存儲事件的架構(gòu)風(fēng)格
以REST資源的方式發(fā)布事件通知
通過消息中間件發(fā)布事件通知
實(shí)現(xiàn)
發(fā)布NotificationLog
發(fā)布基于消息的事件通知
本章小結(jié)
第9章 模塊
通過模塊完成設(shè)計
模塊的基本命名規(guī)范
領(lǐng)域模型的命名規(guī)范
敏捷項目管理上下文中的模塊
其他層中的模塊
先考慮模塊,再是限界上下文
本章小結(jié)
第10章 聚合
在Scrum核心領(lǐng)域中使用聚合
第一次嘗試:臃腫的聚合
第二次嘗試:多個聚合
原則:在一致性邊界之內(nèi)建模真正的不變條件
原則:設(shè)計小聚合
不要相信每一個用例
原則:通過唯一標(biāo)識引用其他聚合.
通過標(biāo)識引用使多個聚合協(xié)同工作
建模對象導(dǎo)航性
可伸縮性和分布式
原則:在邊界之外使用最終一致性.
誰的任務(wù)?
打破原則的理由
理由之一:方便用戶界面
理由之二:缺乏技術(shù)機(jī)制
理由之三:全局事務(wù)
理由之四:查詢性能
遵循原則
通過發(fā)現(xiàn),深入理解
重新思考設(shè)計
估算聚合成本
常見用例場景
內(nèi)存消耗
探索另外的設(shè)計
實(shí)現(xiàn)最終一致性
這是Scrum團(tuán)隊成員的任務(wù)嗎?
決定的時候到了
實(shí)現(xiàn)
創(chuàng)建具有唯一標(biāo)識的根實(shí)體
優(yōu)先使用值對象
使用迪米特法則和“告訴而非詢問”原則 
樂觀并發(fā)
避免依賴注入
本章小結(jié)
第11章 工廠
領(lǐng)域模型中的工廠
聚合根中的工廠方法
創(chuàng)建CalendarEntry實(shí)例
創(chuàng)建Discussion實(shí)例
領(lǐng)域服務(wù)中的工廠
本章小結(jié)
第12章 資源庫
面向集合資源庫
Hibernate實(shí)現(xiàn)
TopLink實(shí)現(xiàn)
面向持久化資源庫
Coherence實(shí)現(xiàn)
MongoDB實(shí)現(xiàn)
額外的行為
管理事務(wù)
警告
類型層級
資源庫 vs 數(shù)據(jù)訪問對象(DAO)
測試資源庫
以內(nèi)存實(shí)現(xiàn)進(jìn)行測試
本章小結(jié)
第13章 集成限界上下文
集成基礎(chǔ)知識
分布式系統(tǒng)之間存在根本性區(qū)別
跨系統(tǒng)邊界交換信息
通過REST資源集成限界上下文
實(shí)現(xiàn)REST資源
使用防腐層實(shí)現(xiàn)REST客戶端
通過消息集成限界上下文
從Scrum的產(chǎn)品負(fù)責(zé)人和團(tuán)隊成員處得到持續(xù)通知 
你能處理這樣的職責(zé)嗎?
長時處理過程,以及避免職責(zé)
長時處理過程的狀態(tài)機(jī)和超時跟蹤器
設(shè)計一個更復(fù)雜的長時處理過程 
當(dāng)消息機(jī)制或你的系統(tǒng)不可用時 
本章小結(jié)
第14章 應(yīng)用程序
用戶界面
渲染領(lǐng)域?qū)ο?br />渲染數(shù)據(jù)傳輸對象
使用調(diào)停者發(fā)布聚合的內(nèi)部狀態(tài) 
通過領(lǐng)域負(fù)載對象渲染聚合實(shí)例 
聚合實(shí)例的狀態(tài)展現(xiàn)
用例優(yōu)化資源庫查詢
處理不同類型的客戶端
渲染適配器以及處理用戶編輯
應(yīng)用服務(wù)
示例應(yīng)用服務(wù) 
解耦服務(wù)輸出 
組合多個限界上下文
基礎(chǔ)設(shè)施
企業(yè)組件容器 
本章小結(jié) 
附錄A 聚合與事件源:A+ES 
應(yīng)用服務(wù)內(nèi)部 
命令處理器 
Lambda語法
并發(fā)控制 
A+ES所帶來的結(jié)構(gòu)自由性
性能 
實(shí)現(xiàn)事件存儲 
關(guān)系型持久化 
BLOB持久化 
專注的聚合
讀模型投射 
與聚合設(shè)計一道使用 
增強(qiáng)事件
工具和模式
事件序列器
事件不變性
值對象 
協(xié)議生成 
單元測試和需求規(guī)范 
事件源和函數(shù)式語言
參考文獻(xiàn)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號