注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)修改軟件的藝術(shù):構(gòu)建易維護(hù)代碼的9條最佳實(shí)踐

修改軟件的藝術(shù):構(gòu)建易維護(hù)代碼的9條最佳實(shí)踐

修改軟件的藝術(shù):構(gòu)建易維護(hù)代碼的9條最佳實(shí)踐

定 價(jià):¥55.00

作 者: [美] 戴維,斯科特,伯恩斯坦(David,Scott,Bernstein) 著;李滿慶 譯
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈程序設(shè)計(jì)叢書
標(biāo) 簽: 計(jì)算機(jī)?網(wǎng)絡(luò) 軟件工程及軟件方法學(xué)

ISBN: 9787115467768 出版時(shí)間: 2017-10-01 包裝: 平裝
開本: 16開 頁數(shù): 175 字?jǐn)?shù):  

內(nèi)容簡介

  《修改軟件的藝術(shù) 構(gòu)建易維護(hù)代碼的9條*佳實(shí)踐》會(huì)幫你降低構(gòu)建與維護(hù)軟件的成本。如果你是軟件開發(fā)者,將學(xué)到一套實(shí)踐方法以構(gòu)建易修改的代碼,因?yàn)樵趹?yīng)用當(dāng)中代碼經(jīng)常需要修改。對于和軟件開發(fā)者合作的管理者來說,本書會(huì)向你展示為何引入這9個(gè)基本的實(shí)踐方法,會(huì)使你的團(tuán)隊(duì)更加有效地交付軟件而不至于讓軟件演變成遺留代碼。

作者簡介

  David Scott Bernstein 敏捷教練,曾為IBM、微軟、Yahoo等企業(yè)提供敏捷實(shí)踐指導(dǎo)。他的公司To Be Agile (tobeagile.com)指導(dǎo)團(tuán)隊(duì)進(jìn)行測試先行、結(jié)對編程以及重構(gòu)等極限編程實(shí)踐。

圖書目錄

第一部分 遺留代碼危機(jī)
第 1 章 有些事情不對勁 2
1.1 什么是遺留代碼 3
1.2 順流直下 4
1.3 孤注一擲 6
1.4 為什么瀑布模型不管用 7
1.4.1 食譜與配方 7
1.4.2 開發(fā)和測試分離 8
1.5 當(dāng)“流程”變成“體力勞動(dòng)” 8
1.6 堅(jiān)如磐石的管理 9
1.7 此處有龍 10
1.8 評估未知 11
1.9 一個(gè)充滿外行人的產(chǎn)業(yè) 12
1.10 回顧 13
第 2 章 逃出混亂 14
2.1 混亂報(bào)告 14
2.1.1 成功的 15
2.1.2 遇到困難的 15
2.1.3 失敗的(有缺陷的) 15
2.2 駁斥斯坦迪什咨詢集團(tuán) 16
2.3 項(xiàng)目為何會(huì)失敗 17
2.4 失敗的代價(jià) 21
2.4.1 這里十幾億,那里十幾億 21
2.4.2 不同的研究,同樣的危機(jī) 22
2.5 總結(jié) 23
第 3 章 聰明人,新想法 25
3.1 走進(jìn)敏捷 25
3.2 小即是好 26
3.3 實(shí)現(xiàn)敏捷 27
3.4 藝術(shù)與技能的平衡 28
3.5 敏捷跨越鴻溝 29
3.6 追求技術(shù)卓越 30
3.7 總結(jié) 31
第二部分 延續(xù)軟件生命(和價(jià)值)的9種實(shí)踐方法
第 4 章 9個(gè)實(shí)踐 34
4.1 專家知道什么 35
4.2 守-破-離 36
4.3 首要原則 37
4.4 關(guān)于原則 38
4.5 關(guān)于實(shí)踐 38
4.6 原則指導(dǎo)實(shí)踐 39
4.7 未雨綢繆還是隨機(jī)應(yīng)變 40
4.8 定義軟件中的“好” 40
4.9 為什么是9個(gè)實(shí)踐 42
4.10 總結(jié) 43
第 5 章 實(shí)踐1:在問如何做之前先問做什么、為什么做、給誰做 44
5.1 不要說如何 44
5.2 將“如何”變?yōu)椤笆裁础?45
5.3 要有一個(gè)產(chǎn)品負(fù)責(zé)人 46
5.4 故事描述了做什么、為什么做、給誰做 48
5.5 為驗(yàn)收測試設(shè)立明確標(biāo)準(zhǔn) 50
5.6 自動(dòng)化驗(yàn)收標(biāo)準(zhǔn) 50
5.7 讓我們付諸實(shí)踐 51
5.7.1 產(chǎn)品負(fù)責(zé)人的7個(gè)策略 51
5.7.2 編寫出更好用戶故事的7個(gè)策略 52
5.8 總結(jié) 53
第6 章 實(shí)踐2:小批次構(gòu)建 55
6.1 更小的謊言 56
6.2 學(xué)會(huì)變通 56
6.3 控制發(fā)布節(jié)奏 58
6.4 越小越好 59
6.5 分而治之 60
6.6 更短的反饋回路 62
6.7 提高構(gòu)建速度 63
6.8 對反饋?zhàn)龀鲰憫?yīng) 64
6.9 建立待辦列表 65
6.10 把用戶故事拆分為任務(wù) 66
6.11 跳出時(shí)間盒子思考 66
6.12 范圍控制 67
6.13 讓我們付諸實(shí)踐 69
6.13.1 度量軟件開發(fā)的7個(gè)策略 69
6.13.2 分割用戶故事的7個(gè)策略 70
6.14 總結(jié) 71
第7 章 實(shí)踐3:持續(xù)集成 72
7.1 建立項(xiàng)目的心跳 73
7.2 理解完成、完整完成和完美完成的區(qū)別 73
7.3 實(shí)踐持續(xù)部署 74
7.4 自動(dòng)化構(gòu)建 75
7.5 盡早集成,頻繁集成 76
7.6 邁出第一步 76
7.7 付諸實(shí)踐 77
7.7.1 構(gòu)建敏捷設(shè)施的7個(gè)策略 77
7.7.2 消除風(fēng)險(xiǎn)的7個(gè)策略 79
7.8 總結(jié) 80
第8 章 實(shí)踐4:協(xié)作 81
8.1 極限編程 82
8.2 溝通與協(xié)作 83
8.3 結(jié)對編程 84
8.3.1 結(jié)對的好處 85
8.3.2 如何結(jié)對編程 86
8.3.3 和誰結(jié)對 87
8.4 伙伴編程 88
8.5 穿刺,群戰(zhàn),圍攻 89
8.5.1 穿刺 89
8.5.2 群戰(zhàn) 89
8.5.3 圍攻 89
8.6 在時(shí)間盒子中對未知進(jìn)行調(diào)研 90
8.7 定期代碼審查和回顧會(huì)議 91
8.8 加強(qiáng)學(xué)習(xí)和知識分享 92
8.9 誨人不倦且不恥下問 92
8.10 讓我們付諸實(shí)踐 93
8.10.1 結(jié)對編程的7個(gè)策略 93
8.10.2 高效回顧會(huì)議的7個(gè)策略 94
8.11 總結(jié) 95
第9 章 實(shí)踐5:編寫整潔的代碼 97
9.1 高質(zhì)量的代碼是內(nèi)聚的 98
9.2 高質(zhì)量的代碼是松散耦合的 99
9.3 高質(zhì)量的代碼是封裝良好的 100
9.4 高質(zhì)量的代碼是自主的 102
9.5 高質(zhì)量的代碼是沒有冗余的 104
9.6 讓代碼特質(zhì)指導(dǎo)我們 105
9.7 今天的代碼質(zhì)量提高會(huì)為將來帶來速度的提升 106
9.8 讓我們付諸實(shí)踐 107
9.8.1 提高代碼質(zhì)量的7個(gè)策略 107
9.8.2 編寫可維護(hù)代碼的7個(gè)策略 108
9.9 總結(jié) 109
第10 章 實(shí)踐6:測試先行 110
10.1 測試的種類 111
10.1.1 驗(yàn)收測試 = 客戶測試 111
10.1.2 單元測試 = 開發(fā)者測試 111
10.1.3 其他測試 = 質(zhì)量保證測試 112
10.2 質(zhì)量保證 112
10.2.1 測試驅(qū)動(dòng)開發(fā)不能取代質(zhì)量保證 113
10.2.2 單元測試不是萬能的 113
10.3 編寫優(yōu)質(zhì)測試 114
10.3.1 這不是測試 115
10.3.2 以行為作為單元 115
10.4 TDD可以提供迅速的反饋 116
10.5 TDD可以為重構(gòu)提供支持 116
10.6 編寫可測試的代碼 117
10.7 TDD也會(huì)失敗 118
10.8 如何將TDD引入團(tuán)隊(duì) 119
10.9 成為測試感染者 119
10.10 讓我們付諸實(shí)踐 120
10.10.1 進(jìn)行優(yōu)質(zhì)驗(yàn)收測試的7個(gè)策略 120
10.10.2 進(jìn)行優(yōu)秀單元測試的7個(gè)策略 121
10.11 總結(jié) 122
第11 章 實(shí)踐7:用測試描述行為 123
11.1 紅條、綠條、重構(gòu) 124
11.2 一個(gè)用測試先行來描述行為的實(shí)例 125
11.2.1 編寫測試 125
11.2.2 存根代碼 126
11.2.3 實(shí)現(xiàn)行為 127
11.3 引入限制條件 128
11.3.1 編寫測試和代碼存根 129
11.3.2 實(shí)現(xiàn)行為 129
11.4 我們創(chuàng)建了什么 130
11.5 測試就是標(biāo)準(zhǔn) 132
11.6 測試需要完整 133
11.7 讓測試獨(dú)一無二 134
11.8 用測試來覆蓋代碼 134
11.9 bug是缺失的測試 135
11.10 用模擬對象來測試工作流 135
11.11 建立防護(hù)網(wǎng) 136
11.12 讓我們付諸實(shí)踐 136
11.12.1 使用測試作為標(biāo)準(zhǔn)的7個(gè)策略 136
11.12.2 修復(fù)bug的7個(gè)策略 137
11.13 總結(jié) 139
第12 章 實(shí)踐8:最后實(shí)現(xiàn)設(shè)計(jì) 140
12.1 可變性的阻礙 140
12.2 可持續(xù)性開發(fā) 142
12.3 編碼與清理 143
12.4 軟件被閱讀的次數(shù)比編寫次數(shù)多 143
12.5 意圖導(dǎo)向編程 144
12.6 降低圈復(fù)雜度 145
12.7 將創(chuàng)建和使用分離 146
12.8 演化式設(shè)計(jì) 147
12.9 讓我們付諸實(shí)踐 147
12.9.1 進(jìn)行演化式設(shè)計(jì)的7個(gè)策略 148
12.9.2 清理代碼的7個(gè)策略 149
12.10 總結(jié) 150
第13 章 實(shí)踐9:重構(gòu)遺留代碼 151
13.1 投資還是借貸 152
13.2 變成“鐵公雞” 153
13.3 當(dāng)代碼需要修改時(shí) 153
13.3.1 對已有代碼添加測試 154
13.3.2 通過重構(gòu)糟糕代碼來培養(yǎng)良好習(xí)慣 154
13.3.3 推遲那些不可避免的 155
13.4 重構(gòu)技巧 155
13.4.1 圖釘測試 155
13.4.2 依賴注入 156
13.4.3 系統(tǒng)扼殺 156
13.4.4 抽象分支 156
13.5 以支持修改為目的重構(gòu) 157
13.6 以開閉原則為目的重構(gòu) 157
13.7 以提高可修改性為目的重構(gòu) 158
13.8 第二次做好 158
13.9 讓我們付諸實(shí)踐 159
13.9.1 助你正確重構(gòu)代碼的7個(gè)策略 159
13.9.2 決定何時(shí)進(jìn)行重構(gòu)的7個(gè)策略 161
13.10 總結(jié) 162
第14 章 從遺留代碼中學(xué)習(xí) 163
14.1 更好,更快,更廉價(jià) 164
14.2 不在不需要的事情上花錢 166
14.3 循規(guī)蹈矩 167
14.4 提升整個(gè)軟件行業(yè) 168
14.5 超越敏捷 169
14.6 將理解具象化 170
14.7 成長的勇氣 171
參考文獻(xiàn) 174

本目錄推薦

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