注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)軟件調(diào)試修煉之道

軟件調(diào)試修煉之道

軟件調(diào)試修煉之道

定 價(jià):¥32.00

作 者: (美) 布徹 著 ,曹玉琳 譯
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 軟件工程/開發(fā)項(xiàng)目管理

ISBN: 9787115252647 出版時(shí)間: 2011-06-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 158 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  調(diào)試對(duì)軟件開發(fā)至關(guān)重要。然而,即使對(duì)于有經(jīng)驗(yàn)的程序員,調(diào)試也決非易事?!盾浖{(diào)試修煉之道》是一部?jī)?yōu)秀的軟件調(diào)試實(shí)戰(zhàn)指南,作者總結(jié)了自己和身邊同事多年的經(jīng)驗(yàn)教訓(xùn),詳細(xì)闡述了調(diào)試的方方面面。書中內(nèi)容共分為三大部分。第一部分借助軟件特有的功能展示缺陷是怎么產(chǎn)生的,介紹了建立在實(shí)證方法之上的核心調(diào)試方法;第二部分闡述怎樣發(fā)現(xiàn)代碼中存在需要修復(fù)的問題,以及如何將調(diào)試融入到整個(gè)軟件開發(fā)過程中去;第三部分討論如何避免一些常見的缺陷?!盾浖{(diào)試修煉之道》秉承了Pragmatic圖書簡(jiǎn)潔實(shí)用的風(fēng)格,總結(jié)了大量方法與經(jīng)驗(yàn),適合軟件開發(fā)人員、調(diào)試人員閱讀并迅速付諸實(shí)踐。

作者簡(jiǎn)介

  Paul Butcher 資深程序員,涉獵廣泛,從單片機(jī)編碼到高級(jí)聲明式編程無(wú)所不精。Paul是一位少年天才,8歲時(shí)就已經(jīng)開始在8位機(jī)上編寫游戲。最近幾年他開始癡迷于賽車,認(rèn)為自己是可以和漢密爾頓比肩的賽車手。

圖書目錄

第一部分  問題的核心
第1 章  山重水復(fù)疑無(wú)路  2
1.1  調(diào)試不僅是排除缺陷  2
1.2  實(shí)證方法  4
1.3  核心調(diào)試過程  5
1.4  先澄清幾個(gè)問題  6
1.4.1  你知道要找的是什么嗎   6
1.4.2  一次一個(gè)問題  7
1.4.3  先檢查簡(jiǎn)單的事情   7
1.5  付諸行動(dòng)  8
第2 章  重現(xiàn)問題  9
2.1  重現(xiàn)第一,提問第二  9
2.1.1  明確開始要做的事   10
2.1.2  抓住重點(diǎn)  10
2.2  控制軟件   11
2.3  控制環(huán)境   11
2.4  控制輸入   13
2.4.1  推測(cè)可能的輸入   13
2.4.2  記錄輸入值  15
2.4.3  負(fù)載和壓力  19
2.5  改進(jìn)問題重現(xiàn)  20
2.5.1  最小化反饋周期  20
2.5.2  將不確定的缺陷變?yōu)榇_定的   22
2.5.3  自動(dòng)化  25
2.5.4  迭代  26
2.6  如果真的不能重現(xiàn)問題該怎么辦   27
2.6.1  缺陷真的存在嗎   27
2.6.2  在相同的區(qū)域解決不同的問題  27
2.6.3  讓其他人參與其中  27
2.6.4  充分利用用戶群體  28
2.6.5  推測(cè)法   28
2.7  付諸行動(dòng)   29
第3 章  診斷  30
3.1  不要急于動(dòng)手——試試科學(xué)的方法  30
3.2  相關(guān)策略  35
3.2.1  插樁  36
3.2.2  分而治之  37
3.2.3  利用源代碼控制工具   38
3.2.4  聚焦差異  39
3.2.5  向他人學(xué)習(xí)  39
3.2.6  奧卡姆的剃刀  40
3.3  調(diào)試器  40
3.4  陷阱  41
3.4.1  你做的修改是正確的嗎  41
3.4.2  驗(yàn)證假設(shè)  42
3.4.3  多重原因  43
3.4.4  流沙  44
3.5  思維游戲    45
3.5.1  旁觀調(diào)試法  45
3.5.2  角色扮演  46
3.5.3  換換腦筋  47
3.5.4  做些改變,什么改變都行  47
3.5.5  福爾摩斯原則  48
3.5.6  堅(jiān)持  49
3.6  驗(yàn)證診斷   49
3.7  付諸行動(dòng)   50
第4 章  修復(fù)缺陷  51
4.1  清除障礙  51
4.2  測(cè)試  52
4.3  修復(fù)問題產(chǎn)生的原因,而非修復(fù)現(xiàn)  54
4.4  重構(gòu)  56
4.5  簽入  57
4.6  審查代碼   58
4.7  付諸行動(dòng)   59
第5 章  反思  60
5.1  這到底是怎么搞的  60
5.2  哪里出了問題  61
5.2.1  我們已經(jīng)做到了嗎  62
5.2.2  根本原因分析   62
5.3  它不會(huì)再發(fā)生了  63
5.3.1  自動(dòng)驗(yàn)證  63
5.3.2  重構(gòu)  64
5.3.3  過程  65
5.4  關(guān)閉循環(huán)  65
5.5  付諸行動(dòng)  66
第二部分  從大局看調(diào)試第6 章 發(fā)現(xiàn)代碼存在問題  68
6.1  追蹤缺陷   68
6.1.1  缺陷追蹤系統(tǒng)   68
6.1.2  怎樣才能寫出一份出色的缺陷報(bào)告  69
6.1.3  環(huán)境和配置報(bào)告  70
6.2  與用戶合作  72
6.2.1  ?化流程  72
6.2.2  有效的溝通  73
6.3  與支持人員協(xié)同工作  77
6.4  付諸行動(dòng)  78
第7 章  務(wù)實(shí)的零容忍策略  79
7.1  缺陷優(yōu)先  79
7.1.1  早期缺陷修復(fù)可以大大降低軟件運(yùn)行的不確定性   79
7.1.2  沒有破窗戶  80
7.2  調(diào)試的思維模式  81
7.3  自己來(lái)解決質(zhì)量問題  83
7.3.1  這里沒有“靈丹妙藥”    83
7.3.2  停止開發(fā)那些有缺陷的程序   84
7.3.3  從“不干凈”?代碼中將“干凈”的代碼分離出來(lái)  84
7.3.4  錯(cuò)誤分類  85
7.3.5  缺陷閃電戰(zhàn)  86
7.3.6  專項(xiàng)小組  87
7.4  付諸行動(dòng)  87
第三部分 深入調(diào)試技術(shù)第8 章 特殊案例  90
8.1  修補(bǔ)已經(jīng)發(fā)布的軟件  90
8.2  向后兼容  91
8.2.1  確定你的代碼有問題  92
8.2.2  解決兼容性問題  93
8.3  并發(fā)  95
8.3.1  簡(jiǎn)單與控制  95
8.3.2  修復(fù)并發(fā)缺陷   96
8.4  海森堡缺陷  97
8.5  性能缺陷  98
8.5.1  尋找瓶頸.  99
8.5.2  準(zhǔn)確的性能分析  99
8.6  嵌 入式軟件  100
8.6.1  嵌入式調(diào)試工具  100
8.6.2  提取信息的痛苦路程   102
8.7  第三方軟件的缺陷  102
8.7.1  不要太快去指責(zé)  103
8.7.2  處理第三方代碼的缺陷   103
8.7.3  開源代碼  104
8.8  付諸行動(dòng)  106
第9 章  理想的調(diào)試環(huán)境   107
9.1  自動(dòng)化測(cè)試  107
9.1.1  有效的自動(dòng)化測(cè)試  107
9.1.2  自動(dòng)化測(cè)試可以作為調(diào)試的輔助  108
9.1.3  模擬測(cè)試、樁測(cè)試以及其他的代替測(cè)試技術(shù)   109
9.2  源程序控制  110
9.2.1  穩(wěn)定性  110
9.2.2  可維護(hù)性  111
9.2.3  與分支相關(guān)的問題  111
9.2.4  控制分支  112
9.3  自動(dòng)構(gòu)建  113
9.3.1  一鍵構(gòu)建  114
9.3.2  構(gòu)建機(jī)器  115
9.3.3  持續(xù)集成  115
9.3.4  創(chuàng)建版本  116
9.3.5  靜態(tài)分析  117
9.3.6  使用靜態(tài)分析  119
9.4  付諸行動(dòng)   120
第10 章  讓軟件學(xué)會(huì)自己尋找缺陷   121
10.1  假設(shè)和斷言  121
10.1.1  一個(gè)例子  122
10.1.2  等一下——?jiǎng)偛虐l(fā)生了什么  124
10.1.3  例子,第二幕   124
10.1.4  契約,先決條件,后置條件和不變量  125
10.1.5  開啟或關(guān)閉斷言   125
10.1.6  防錯(cuò)性程序設(shè)計(jì)  126
10.1.7  斷言濫用  128
10.2  調(diào)試版本  129
10.2.1  編譯器選項(xiàng)   130
10.2.2  調(diào)試子系統(tǒng)   130
10.2.3  內(nèi)置控制  132
10.3  資源泄漏和異常處理   133
10.3.1  在測(cè)試中自動(dòng)拋出異?! ?33
10.3.2  一個(gè)例子  134
10.3.3  測(cè)試框架  136
10.4  付諸行動(dòng)  139
第11 章  反模式  140
11.1  夸大優(yōu)先級(jí)  140
11.2  超級(jí)巨星  141
11.3  維護(hù)團(tuán)隊(duì)  142
11.4  救火模式     144
11.5  重寫  145
11.6  沒有代碼所有權(quán)  146
11.7  魔法  146
11.8  付諸行動(dòng)  147
附錄A  資源  148
附錄B  參考書目  157

本目錄推薦

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