注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)敏捷軟件開發(fā):原則、模式與實(shí)踐(C#版)

敏捷軟件開發(fā):原則、模式與實(shí)踐(C#版)

敏捷軟件開發(fā):原則、模式與實(shí)踐(C#版)

定 價:¥69.00

作 者: Robert C.Martin, Micah Martin
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈程序設(shè)計叢書
標(biāo) 簽: 軟件項(xiàng)目管理

ISBN: 9787115165756 出版時間: 2007-11-01 包裝: 平裝
開本: 16 頁數(shù): 538 字?jǐn)?shù):  

內(nèi)容簡介

  本書中,享譽(yù)全球的軟件開發(fā)專家和軟件工程大師Robert C. Martin深入而生動地使用真實(shí)案例講解了面向?qū)ο蠡驹瓌t、重要的設(shè)計模式、UML和敏捷實(shí)踐等程序員必備的知識?!”緯?003年榮獲第13屆Jolt大獎,是C++和Java程序員提高自身水平的絕佳教材,也適于用作高校計算機(jī)、軟件工程專業(yè)相關(guān)課程的教材或參考書。

作者簡介

  Robert C.Martin(“Bob大叔”)世界級的軟件開發(fā)大師,著名軟件咨詢公司Object Mento,公司的創(chuàng)始人和總裁。曾經(jīng)擔(dān)任C++Report雜志主編多年,也是設(shè)計模式和敏捷開發(fā)運(yùn)動的主要倡導(dǎo)者之一。

圖書目錄

第一部分 敏捷開發(fā)
第1章 敏捷實(shí)踐        3
1.1 敏捷聯(lián)盟        4
1.1.1 人和交互重于過程和工具        4
1.1.2 可以工作的軟件重于面面俱到的文檔        5
1.1.3 客戶合作重于合同談判        5
1.1.4 隨時應(yīng)對變化重于遵循計劃        6
1.2 原則        6
1.3 結(jié)論        8
1.4 參考文獻(xiàn)        8
第2章 極限編程概述        9
2.1 極限編程實(shí)踐        9
2.1.1 完整團(tuán)隊        9
2.1.2 用戶故事        10
2.1.3 短交付周期        10
2.1.4 驗(yàn)收測試        10
2.1.5 結(jié)對編程        11
2.1.6 測試驅(qū)動開發(fā)        11
2.1.7 集體所有權(quán)        12
2.1.8 持續(xù)集成        12
2.1.9 可持續(xù)的開發(fā)速度        12
2.1.10 開放的工作空間        13
2.1.11 計劃游戲        13
2.1.12 簡單設(shè)計        13
2.1.13 重構(gòu)        14
2.1.14 隱喻        14
2.2 結(jié)論        15
2.3 參考文獻(xiàn)        15
第3章 計劃        16
3.1 初始探索        17
3.2 發(fā)布計劃        17
3.3 迭代計劃        18
3.4 定義“完成”        18
3.5 任務(wù)計劃        18
3.6 迭代        19
3.7 跟蹤        19
3.8 結(jié)論        20
3.9 參考文獻(xiàn)        21
第4章 測試        22
4.1 測試驅(qū)動開發(fā)        22
4.1.1 測試優(yōu)先設(shè)計的例子        23
4.1.2 測試促使模塊之間隔離        24
4.1.3 意外獲得的解耦合        25
4.2 驗(yàn)收測試        26
4.3 意外獲得的構(gòu)架        27
4.4 結(jié)論        27
4.5 參考文獻(xiàn)        28
第5章 重構(gòu)        29
5.1 素數(shù)產(chǎn)生程序:一個簡單的重構(gòu)示例        30
5.1.1 單元測試        31
5.1.2 重構(gòu)        32
5.1.3 最后審視        35
5.2 結(jié)論        38
5.3 參考文獻(xiàn)        39
第6章 一次編程實(shí)踐        40
6.1 保齡球比賽        40
6.2 結(jié)論        75
第二部分 敏捷設(shè)計
第7章 什么是敏捷設(shè)計        81
7.1 設(shè)計臭味        81
7.1.1 設(shè)計臭味——腐化軟件的氣味        82
7.1.2 僵化性        82
7.1.3 脆弱性        82
7.1.4 頑固性        82
7.1.5 粘滯性        82
7.1.6 不必要的復(fù)雜性        83
7.1.7 不必要的重復(fù)        83
7.1.8 晦澀性        83
7.2 軟件為何會腐化        84
7.3 Copy程序        84
7.3.1 熟悉的場景        84
7.3.2 Copy程序的敏捷設(shè)計        87
7.4 結(jié)論        88
7.5 參考文獻(xiàn)        88
第8章 SRP:單一職責(zé)原則        89
8.1 定義職責(zé)        90
8.2 分離耦合的職責(zé)        91
8.3 持久化        92
8.4 結(jié)論        92
8.5 參考文獻(xiàn)        92
第9章 OCP:開放-封閉原則        93
9.1 OCP概述        94
9.2 Shape應(yīng)用程序        95
9.2.1 違反OCP        95
9.2.2 遵循OCP        97
9.2.3 預(yù)測變化和“貼切的”結(jié)構(gòu)        98
9.2.4 放置吊鉤        99
9.2.5 使用抽象獲得顯式封閉        99
9.2.6 使用“數(shù)據(jù)驅(qū)動”的方法獲取封閉性        100
9.3 結(jié)論        101
9.4 參考文獻(xiàn)        101
第10章 LSP:Liskov替換原則        102
10.1 違反LSP的情形        103
10.1.1 簡單例子        103
10.1.2 更微妙的違反情形        104
10.1.3 實(shí)際的例子        108
10.2 用提取公共部分的方法代替繼承        111
10.3 啟發(fā)式規(guī)則和習(xí)慣用法        113
10.4 結(jié)論        114
10.5 參考文獻(xiàn)        114
第11章 DIP:依賴倒置原則        115
11.1 層次化        116
11.1.1 倒置的接口所有權(quán)        117
11.1.2 依賴于抽象        117
11.2 簡單的DIP示例        117
11.3 熔爐示例        119
11.4 結(jié)論        121
11.5 參考文獻(xiàn)        121
第12章 ISP:接口隔離原則        122
12.1 接口污染        122
12.2 分離客戶就是分離接口        123
12.3 類接口與對象接口        124
12.3.1 使用委托分離接口        124
12.3.2 使用多重繼承分離接口        125
12.4 ATM用戶界面的例子        126
12.5 結(jié)論        131
12.6 參考文獻(xiàn)        131
第13章 C#程序員UML概觀        132
13.1 類圖        134
13.2 對象圖        135
13.3 順序圖        136
13.4 協(xié)作圖        136
13.5 狀態(tài)圖        137
13.6 結(jié)論        137
13.7 參考文獻(xiàn)        137
第14章 使用UML        138
14.1 為什么建模        138
14.1.1 為什么構(gòu)建軟件模型        139
14.1.2 編碼前應(yīng)該構(gòu)建面面俱到的設(shè)計嗎        139
14.2 有效使用UML        139
14.2.1 與他人交流        139
14.2.2 脈絡(luò)圖        141
14.2.3 項(xiàng)目結(jié)束文檔        142
14.2.4 要保留的和要丟棄的        142
14.3 迭代式改進(jìn)        143
14.3.1 行為優(yōu)先        143
14.3.2 檢查結(jié)構(gòu)        144
14.3.3 想象代碼        146
14.3.4 圖的演化        147
14.4 何時以及如何繪制圖示        147
14.4.1 何時要畫圖,何時不要畫圖        147
14.4.2 CASE 工具        148
14.4.3 那么,文檔呢        149
14.5 結(jié)論        149
第15章 狀態(tài)圖        150
15.1 基礎(chǔ)知識        150
15.1.1 特定事件        151
15.1.2 超狀態(tài)        152
15.1.3 初始偽狀態(tài)和結(jié)束偽狀態(tài)        153
15.2 使用FSM圖示        153
15.3 結(jié)論        154
第16章 對象圖        155
16.1 即時快照        155
16.2 主動對象        156
16.3 結(jié)論        159
第17章 用例        160
17.1 編寫用例        160
17.1.1 備選流程        161
17.1.2 其他東西呢        161
17.2 用例圖        162
17.3 結(jié)論        162
17.4 參考文獻(xiàn)        162
第18章 順序圖        163
18.1 基礎(chǔ)知識        163
18.1.1 對象、生命線、消息及其他        164
18.1.2 創(chuàng)建和析構(gòu)        164
18.1.3 簡單循環(huán)        165
18.1.4 時機(jī)和場合        166
18.2 高級概念        168
18.2.1 循環(huán)和條件        168
18.2.2 耗費(fèi)時間的消息        169
18.2.3 異步消息        171
18.2.4 多線程        174
18.2.5 主動對象        175
18.2.6 向接口發(fā)送消息        175
18.3 結(jié)論        175
第19章 類圖        177
19.1 基礎(chǔ)知識        177
19.1.1 類        177
19.1.2 關(guān)聯(lián)        178
19.1.3 繼承        179
19.2 類圖示例        180
19.3 細(xì)節(jié)        181
19.3.1 類衍型        181
19.3.2 抽象類        182
19.3.3 屬性        183
19.3.4 聚集        183
19.3.5 組合        184
19.3.6 多重性        185
19.3.7 關(guān)聯(lián)衍型        186
19.3.8 內(nèi)嵌類        187
19.3.9 關(guān)聯(lián)類        187
19.3.10 關(guān)聯(lián)修飾符        187
19.4 結(jié)論        188
19.5 參考文獻(xiàn)        188
第20章 咖啡的啟示        189
20.1 Mark IV型專用咖啡機(jī)        189
20.1.1 規(guī)格說明書        190
20.1.2 常見的丑陋方案        192
20.1.3 虛構(gòu)的抽象        193
20.1.4 改進(jìn)方案        194
20.1.5 實(shí)現(xiàn)抽象模型        198
20.1.6 這個設(shè)計的好處        209
20.2 面向?qū)ο筮^度設(shè)計        214
20.3 參考文獻(xiàn)        214
第三部分 薪水支付案例研究
第21章 COMMAND模式和ACTIVE OBJECT模式:多功能與多任務(wù)        219
21.1 簡單的Command        220
21.2 事務(wù)        221
21.2.1 實(shí)體上解耦和時間上解耦        222
21.2.2 時間上解耦        223
21.3 Undo()方法        223
21.4 ACTIVE OBJECT模式        224
21.5 結(jié)論        227
21.6 參考文獻(xiàn)        228
第22章 TEMPLATE METHOD模式和STRATEGY模式:繼承和委托        229
22.1 TEMPLATE METHOD模式        230
22.1.1 濫用模式        232
22.1.2 冒泡排序        232
22.2 STRATEGY模式        235
22.3 結(jié)論        239
22.4 參考文獻(xiàn)        239
第23章 FACADE模式和MEDIATOR模式        240
23.1 FACADE模式        240
23.2 MEDIATOR模式        241
23.3 結(jié)論        243
23.4 參考文獻(xiàn)        243
第24章 SINGLETON模式和MONOSTATE模式        244
24.1 SINGLETON模式        245
24.1.1 SINGLETON模式的好處        246
24.1.2 SINGLETON模式的代價        246
24.1.3 運(yùn)用SINGLETON模式        246
24.2 MONOSTATE模式        247
24.2.1 MONOSTATE模式的好處        249
24.2.2 MONOSTATE模式的代價        249
24.2.3 運(yùn)用MONOSTATE模式        249
24.3 結(jié)論        253
24.4 參考文獻(xiàn)        253
第25章 NULL OBJECT模式        254
25.1 描述        254
25.2 結(jié)論        256
25.3 參考文獻(xiàn)        256
第26章 薪水支付案例研究:第一次迭代開始        257
26.1 初步的規(guī)格說明        257
26.2 基于用例分析        258
26.2.1 增加新雇員        259
26.2.2 刪除雇員        260
26.2.3 登記考勤卡        260
26.2.4 登記銷售憑條        260
26.2.5 登記工會服務(wù)費(fèi)        261
26.2.6 更改雇員明細(xì)        261
26.2.7 發(fā)薪日        263
26.3 反思:找出底層的抽象        264
26.3.1 雇員支付類別抽象        264
26.3.2 支付時間表抽象        265
26.3.3 支付方式        266
26.3.4 從屬關(guān)系        266
26.4 結(jié)論        266
26.5 參考文獻(xiàn)        267
第27章 薪水支付案例研究:實(shí)現(xiàn)        268
27.1 事務(wù)        268
27.1.1 增加雇員        269
27.1.2 刪除雇員        273
27.1.3 考勤卡、銷售憑條以及服務(wù)
費(fèi)用        274
27.1.4 更改雇員屬性        280
27.1.5 犯了什么暈        287
27.1.6 支付雇員薪水        290
27.1.7 支付領(lǐng)月薪的雇員薪水        292
27.1.8 支付鐘點(diǎn)工薪水        294
27.2 主程序        302
27.3 數(shù)據(jù)庫        303
27.4 結(jié)論        304
27.5 關(guān)于本章        304
27.6 參考文獻(xiàn)        305
第四部分 打包薪水支付系統(tǒng)
第28章 包和組件的設(shè)計原則        308
28.1 包和組件        308
28.2 組件的內(nèi)聚性原則:粒度        309
28.2.1 重用—發(fā)布等價原則        309
28.2.2 共同重用原則        310
28.2.3 共同封閉原則        311
28.2.4 組件內(nèi)聚性總結(jié)        311
28.3 組件的耦合性原則:穩(wěn)定性        311
28.3.1 無環(huán)依賴原則        311
28.3.2 穩(wěn)定依賴原則        316
28.3.3 穩(wěn)定抽象原則        319
28.4 結(jié)論        322
第29章 FACTORY模式        323
29.1 依賴問題        325
29.2 靜態(tài)類型與動態(tài)類型        326
29.3 可替換的工廠        326
29.4 對測試支架使用對象工廠        327
29.5 工廠的重要性        328
29.6 結(jié)論        329
29.7 參考文獻(xiàn)        329
第30章 薪水支付案例研究:包分析        330
30.1 組件結(jié)構(gòu)和符號        330
30.2 應(yīng)用CCP        332
30.3 應(yīng)用REP        333
30.4 耦合和封裝        335
30.5 度量        336
30.6 度量薪水支付應(yīng)用程序        337
30.6.1 對象工廠        340
30.6.2 重新思考內(nèi)聚的邊界        342
30.7 最終的包結(jié)構(gòu)        342
30.8 結(jié)論        345
30.9 參考文獻(xiàn)        345
第31章 COMPOSITE模式        346
31.1 組合命令        347
31.2 多重性還是非多重性        348
31.3 結(jié)論        348
第32章 OBSERVER——演化至模式        349
32.1 數(shù)字時鐘        350
32.2 OBSERVER模式        365
32.2.1 模型        365
32.2.2 面向?qū)ο笤O(shè)計原則的運(yùn)用        366
32.3 結(jié)論        366
32.4 參考文獻(xiàn)        367
第33章 ABSTRACT SERVER模式、 ADAPTER模式和BRIDGE模式        368
33.1 ABSTRACT SERVER模式        369
33.2 ADAPTER模式        370
33.2.1 類形式的ADAPTER模式        370
33.2.2 調(diào)制解調(diào)器問題、適配器以及LSP        370
33.3 BRIDGE模式        374
33.4 結(jié)論        375
33.5 參考文獻(xiàn)        376
第34章 PROXY模式和GATEWAY模式:管理第三方API        377
34.1 PROXY模式        377
34.1.1 實(shí)現(xiàn)PROXY模式        381
34.1.2 小結(jié)        391
34.2 數(shù)據(jù)庫、中間件以及其他第三方接口        392
34.3 TABLE DATA GATEWAY        394
34.3.1 測試和內(nèi)存TDG        399
34.3.2 測試DbGateWay        400
34.4 可以用于數(shù)據(jù)庫的其他模式        403
34.5 結(jié)論        404
34.6 參考文獻(xiàn)        404
第35章 VISITOR模式        405
35.1 VISITOR模式        406
35.2 ACYCLIC VISITOR模式        409
35.3 DECORATOR模式        418
35.4 EXTENSION OBJECT模式        423
35.5 結(jié)論        432
35.6 參考文獻(xiàn)        432
第36章 STATE模式        433
36.1 嵌套switch/case語句        434
36.1.1 內(nèi)部作用域的狀態(tài)變量        436
36.1.2 測試動作        436
36.1.3 代價和收益        436
36.2 遷移表        437
36.2.1 使用表解釋        437
36.2.2 代價和收益        438
36.3 STATE模式        439
36.3.1 STATE模式和 STRATEGY模式        441
36.3.2 代價和收益        442
36.4 狀態(tài)機(jī)編譯器        442
36.4.1 SMC生成的Turnstile.cs以及其他支持文件        443
36.4.2 代價和收益        448
36.5 狀態(tài)機(jī)應(yīng)用的場合        448
36.5.1 作為GUI中的高層應(yīng)用策略        448
36.5.2 GUI交互控制器        450
36.5.3 分布式處理        450
36.6 結(jié)論        451
36.7 參考文獻(xiàn)        451
第37章 薪水支付案例研究:數(shù)據(jù)庫        452
37.1 構(gòu)建數(shù)據(jù)庫        452
37.2 一個代碼設(shè)計缺陷        453
37.3 增加雇員        455
37.4 事務(wù)        464
37.5 加載Employee對象        468
37.6 還有什么工作        478
第38章 薪水支付系統(tǒng)用戶界面:Model-View-Presenter        479
38.1 界面        480
38.2 實(shí)現(xiàn)        481
38.3 構(gòu)建窗口        489
38.4 Payroll窗口        495
38.5 真面目        504
38.6 結(jié)論        505
38.7 參考文獻(xiàn)        505
附錄A 雙公司記        506
Rufus公司:“日落”項(xiàng)目        506
Rupert工業(yè)公司:“朝暉”項(xiàng)目        506
附錄B 什么是軟件        516
索引        524

本目錄推薦

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