注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件工程及軟件方法學領域驅動設計:軟件核心復雜性應對之道

領域驅動設計:軟件核心復雜性應對之道

領域驅動設計:軟件核心復雜性應對之道

定 價:¥48.00

作 者: (美)伊文斯(Evans, E.)著;陳大峰譯
出版社: 清華大學出版社
叢編項:
標 簽: 軟件設計

ISBN: 9787302115762 出版時間: 2006-03-01 包裝: 平裝
開本: 16開 頁數(shù): 390 字數(shù):  

內容簡介

“每個有思想的軟件開發(fā)者的書架上都應該有這樣一本書”——KentBeck“Eric設法收集了經驗豐富的對象設計人員一直使用的一些設計過程,作為一個團隊的人們在這些過程中卻沒能夠成功地完成剩下的工作。人們將知識弄得支離破碎……卻從來沒有將建立領域邏輯的原則組織起來并使其系統(tǒng)化。這本書是非常重要的。”——KyleBrown,《EnterpriseJavaProgrammingwithIBMWebSphere》的作者。本書涉及的主題具體包括:●隔離領域●實體、值對象、服務和模塊●一個領域對象的生命周期●將過程表示為領域對象●創(chuàng)建沒有副作用的函數(shù)●總體輪廓●獨立的類●擴展說明●應用分析模式●將設計模式與模型相聯(lián)系●維護模型的完整性●設計領域前景聲明●選擇重構目標●職責層次●創(chuàng)建可插入的組件框架●結合大比例結構與界限上下文本書為讀者系統(tǒng)地介紹了領域驅動的設計方法。書中介紹了大量優(yōu)秀的設計示例、基于經驗的技術以及促進處理復雜領域的軟件開發(fā)的基本原則。本書將設計和開發(fā)實踐相結合,在介紹領域驅動設計時,還提供了大量的Java示例,這些例子都是從實際中提取出來的,展示了領域驅動設計在軟件開發(fā)中的實際應用。通過對本書的閱讀,讀者將獲得對領域驅動設計的總體認識,了解領域驅動設計中涉及的關鍵原則、術語和推斷。本書介紹的經驗和標準模式將為開發(fā)團隊提供一種通用語言。另外,書中還介紹了如何在領域模型中進行重構,如何與敏捷開發(fā)進行集成,如何獲得對領域更深的認識并增進領域專家和程序員之間的交流等。并在此基礎上,介紹了在復雜系統(tǒng)和較大組織中進行的領域驅動設計。

作者簡介

  陳大峰,國防科技大學計算機與技術博士,研究方向;分布式計算;研究課題為過程集成工作流。對UML建模、EDOC、工作流和過程集成有深入的研究,曾發(fā)表多篇論文和專業(yè)文章。目前擔任某消息代理中間件產品開發(fā)組長,一直使用UML作為設計工具和溝通工具,并取得顯著成果。

圖書目錄

第Ⅰ部分  讓領域模型發(fā)揮作用
第1章  消化知識    5
1.1  有效建模的因素    9
1.2  知識消化    10
1.3  持續(xù)學習    11
1.4  知識豐富的設計    12
1.5  深層模型    15
第2章  交流及語言的使用    17
2.1  通用語言    17
2.2  利用對話改進模型    22
2.3  一個團隊,一種語言    24
2.4  文檔和圖    25
2.4.1  書面的設計文檔    27
2.4.2  執(zhí)行的基礎    29
2.5  說明性模型    29
第3章  將模型和實現(xiàn)綁定    32
3.1  模型驅動設計    33
3.2  建模范型和工具支持    36
3.3  突出主旨:為什么模型對
用戶很關鍵    41
3.4  實踐型建模人員    43
第Ⅱ部分  模型驅動設計的構建塊
第4章  分離領域    47
4.1  分層架構    47
4.1.1  層間的聯(lián)系    51
4.1.2  架構框架    51
4.2  模型屬于領域層    52
4.3  其他種類的隔離    55
第5章  軟件中的模型描述    56
5.1  關聯(lián)    57
5.2  實體(又稱引用對象)    62
5.2.1  實體建模    65
5.2.2  設計標識操作    66
5.3  值對象    68
5.3.1  設計值對象    71
5.3.2  設計包含值對象的關聯(lián)    73
5.4  服務    74
5.4.1  服務和分隔的領域層    75
5.4.2  粒度    77
5.4.3  訪問服務    77
5.5  模塊(包)    77
5.5.1  敏捷的模塊    79
5.5.2  基礎結構驅動打包的缺陷    80
5.6  建模范式    82
5.6.1  對象范式的優(yōu)勢    82
5.6.2  對象世界中的非對象    84
5.6.3  在混合范式中使用模型
驅動設計    85
第6章  領域對象的生命周期    87
6.1  聚合    88
6.2  工廠    96
6.2.1  工廠及其應用場所的選擇99
6.2.2  只需構造函數(shù)的情況    101
6.2.3  接口的設計    102
6.2.4  如何放置不變量的邏輯    103
6.2.5  實體工廠與值對象工廠    103
6.2.6  存儲對象的重建    103
6.3  倉儲    105
6.3.1  查詢倉儲    109
6.3.2  了解倉儲實現(xiàn)的必要性    111
6.3.3  實現(xiàn)倉儲    111
6.3.4  在框架內工作    113
6.3.5  與工廠的關系    113
6.4  為關系數(shù)據(jù)庫設計對象    115
第7章  使用語言:擴展示例    117
7.1  貨物運輸系統(tǒng)概述    117
7.2  隔離領域:系統(tǒng)簡介    119
7.3  區(qū)分實體和值對象    120
7.4  運輸領域中的關聯(lián)設計    121
7.5  聚合的邊界    123
7.6  選擇倉儲    124
7.7  場景概述    125
7.7.1  應用特性示例:改變一件貨物的目的地126
7.7.2  應用特性示例:重復業(yè)務126
7.8  對象的創(chuàng)建    126
7.8.1  Cargo的工廠和構造函數(shù)    126
7.8.2  添加一個Handling Event127
7.9  停下來重構:Cargo聚合
的另一種設計    129
7.10  運輸模型中的模塊    131
7.11  引入新特性:配額檢查    133
7.11.1  連接兩個系統(tǒng)    134
7.11.2  改進模型:劃分業(yè)務    135
7.11.3  性能調整    137
7.12  小結    137
第Ⅲ部分  面向更深層解的重構
第8章  突破    143
8.1  關于突破的故事    144
8.1.1  中看不中用的模型    144
8.1.2  突破    146
8.1.3  更深層的模型    148
8.1.4  冷靜的決定    149
8.1.5  成效    150
8.2  時機    150
8.3  著眼于根本    151
8.4  尾聲:一連串的新理解    151
第9章  隱含概念轉變?yōu)轱@式概念    153
9.1  概念挖掘    153
9.1.1  傾聽表達用語    154
9.1.2  檢查不協(xié)調之處    157
9.1.3  研究矛盾之處    162
9.1.4  查閱書籍    162
9.1.5  嘗試,再嘗試    164
9.2  如何建模不太明顯的概念    164
9.2.1  顯式的約束    165
9.2.2  作為領域對象的流程    167
9.2.3  規(guī)格    168
9.2.4  規(guī)格的應用和實現(xiàn)    171
第10章  柔性設計    184
10.1  釋意接口    186
10.2  無副作用函數(shù)    190
10.3  斷言    194
10.4  概念輪廓    197
10.5  孤立類    201
10.6  操作封閉    203
10.7  聲明性設計    205
10.8  一個聲明性風格的設計    207
10.9  攻擊角度    215
10.9.1  切分子領域    215
10.9.2  盡可能利用現(xiàn)成的形式    216
第11章  應用分析模式    225
第12章  把設計模式和模型
聯(lián)系起來    237
12.1  策略    238
12.2  組合    241
12.3  為什么不用Flyweight?    245
第13章  向更深層理解重構    247
13.1  發(fā)起重構    247
13.2  探索團隊    248
13.3  前期工作    249
13.4  針對開發(fā)人員設計    249
13.5  時機選擇    250
13.6  將危機視為機會    250
第Ⅳ部分  戰(zhàn)略性設計
第14章  維護模型完整性    255
14.1  限界上下文    257
14.2  持續(xù)集成    261
14.3  上下文映射    263
14.3.1  在上下文邊界上的測試    269
14.3.2  組織和文檔化上下文
映射    269
14.4  限界上下文之間的關系    270
14.5  共享內核    271
14.6  顧客/供應商開發(fā)團隊    272
14.7  同流者    275
14.8  防腐層    277
14.8.1  設計防腐層的接口    279
14.8.2  實現(xiàn)防腐層    279
14.8.3  一個關于警戒的故事    282
14.9  隔離方式    282
14.10  開放主機服務    284
14.11  公布語言    284
14.12  盲人摸象    287
14.13  選擇模型上下文的策略    290
14.13.1  團隊或更高層的決策    290
14.13.2  把自己放在上下文中    291
14.13.3  轉換邊界    291
14.13.4  接受我們不能改變的東
西:描繪外部系統(tǒng)    292
14.13.5  與外部系統(tǒng)的關系    292
14.13.6  在設計系統(tǒng)    293
14.13.7  滿足不同模型的
特別需要    293
14.13.8  部署    294
14.13.9  權衡    295
14.13.10  考慮項目已經進行
的情況    295
14.14  轉換    296
14.14.1  合并上下文:隔離
方式→共享內核    296
14.14.2  合并上下文:共享
內核→持續(xù)集成    297
14.14.3  逐步淘汰原有系統(tǒng)    298
14.14.4  開放主機服務→
公布語言    299
第15章  精煉    301
15.1  核心領域    302
15.1.1  選擇核心    305
15.1.2  誰來負責精煉工作    305
15.2  精煉的逐步升級    306
15.3  通用子域    307
15.3.1  通用不一定可重用    312
15.3.2  項目風險管理    313
15.4  領域愿景聲明    313
15.5  突出核心    315
15.5.1  精煉文檔    316
15.5.2  把核心標記出來    317
15.5.3  把精煉文檔作為開發(fā)
過程的工具    318
15.6  內聚機制    319
15.6.1  通用子域與內聚機制    320
15.6.2  屬于核心領域的機制    321
15.7  精煉到聲明性風格    321
15.8  隔離核心    322
15.8.1  創(chuàng)建隔離核心的代價    323
15.8.2  推進團隊決策    323
15.9  抽象核心    328
15.10  深層模型精煉    329
15.11  選擇重構的目標    329
第16章  大比例結構    330
16.1  漸進順序    333
16.2  系統(tǒng)隱喻    335
16.3  職責層    337
16.4  知識級別    349
16.5  插件框架    356
16.6  結構的約束    360
16.7  重構到合適的結構    361
16.7.1  最小化    362
16.7.2  交流和自律    362
16.7.3  結構重組產生柔性設計    362
16.7.4  精煉為開發(fā)指路    363
第17章  綜合應用戰(zhàn)略性設計    364
17.1  大比例結構和限界上下文
的結合    364
17.2  大比例結構和精煉的結合    367
17.3  首先進行評估    369
17.4  由誰制定策略    369
17.4.1  在開發(fā)過程中自發(fā)產生    369
17.4.2  以客戶為中心的
架構團隊    370
17.5  制定戰(zhàn)略性設計決策的
6個要點    370
17.5.1  技術框架同樣如此    373
17.5.2  提防總體規(guī)劃    374
第18章  尾聲    375
附錄A  關于模式    380
附錄B  術語表    383
附錄C  參考文獻    387
附錄D  關系圖    389

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號