注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)軟件驅(qū)魔:調(diào)試和優(yōu)化遺留代碼的藝術(shù)

軟件驅(qū)魔:調(diào)試和優(yōu)化遺留代碼的藝術(shù)

軟件驅(qū)魔:調(diào)試和優(yōu)化遺留代碼的藝術(shù)

定 價(jià):¥59.00

作 者: (美)Bill Blunden 著,施遠(yuǎn)敏,張燎原,何軍 譯
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 計(jì)算機(jī)與互聯(lián)網(wǎng) 軟件工程及軟件方法學(xué)

ISBN: 9787111462842 出版時(shí)間: 2014-05-01 包裝: 平裝
開本: 16開 頁數(shù): 268 字?jǐn)?shù):  

內(nèi)容簡介

  《軟件驅(qū)魔:調(diào)試和優(yōu)化遺留代碼的藝術(shù)》是遺留代碼調(diào)試和優(yōu)化領(lǐng)域的代表性著作,是作者10多年來在軟件bug中“驅(qū)魔”經(jīng)驗(yàn)的結(jié)晶,Amazon五星評論。不僅從實(shí)用性角度深入、系統(tǒng)地講解了調(diào)試和優(yōu)化遺留代碼的方法、技術(shù)和最佳實(shí)踐,而且從源頭上闡述如何避免掉進(jìn)維護(hù)遺留代碼的泥潭,編寫出易于維護(hù),甚至不需要維護(hù)的高質(zhì)量代碼。《軟件驅(qū)魔:調(diào)試和優(yōu)化遺留代碼的藝術(shù)》共分7章:第1章介紹用于構(gòu)建易于修改和調(diào)試的軟件的相關(guān)技術(shù);第2章講解如何定位和消除軟件bug;第3章提供理解問題以及程序的有用方法;第4章講述調(diào)試器在計(jì)算機(jī)內(nèi)部的工作原理;第5章深入探討優(yōu)化內(nèi)存的相關(guān)技術(shù)和方法;第6章則探討如何從CPU運(yùn)行效率的角度優(yōu)化代碼的經(jīng)驗(yàn)和技術(shù);第7章結(jié)合社會和環(huán)境因素給出一些寶貴的建議。

作者簡介

  Bill Blunden,擁有康奈爾大學(xué)物理學(xué)學(xué)士學(xué)位和凱斯西儲大學(xué)運(yùn)籌學(xué)碩士學(xué)位。資深系統(tǒng)維護(hù)專家,從事相關(guān)工作10余年,對系統(tǒng)軟件的維護(hù)、遺留代碼的調(diào)試和優(yōu)化有非常深入的研究?;钴S于計(jì)算機(jī)安全類社區(qū),常與計(jì)算機(jī)安全領(lǐng)域多名世界級安全專家交流探討。

圖書目錄

譯者序
前言
第1章 預(yù)防藥 1
1.1?核心問題 2
1.1.1 上市時(shí)間的壓力 2
1.1.2 不確定的規(guī)格說明 4
1.1.3 以功能特性換時(shí)間 5
1.1.4 寫下來 5
1.1.5 復(fù)雜性 8
1.2 防御性編程 9
1.2.1 內(nèi)聚和耦合 9
1.2.2 錯(cuò)誤輸入檢查 12
1.2.3 數(shù)據(jù)范圍 18
1.2.4 日志 20
1.2.5 文檔 28
1.2.6 為改變而設(shè)計(jì) 31
1.2.7 增量精煉 33
1.3 單元測試 34
1.3.1 自動(dòng)化測試的動(dòng)機(jī) 35
1.3.2 實(shí)現(xiàn)框架的步驟 36
1.3.3 框架擴(kuò)展 43
1.4 工具的配置 46
1.4.1 使用編譯器警告 46
1.4.2 發(fā)行版本的設(shè)置 47
1.5 機(jī)器相關(guān)性 48
1.5.1 字節(jié)序 49
1.5.2 內(nèi)存對齊 50
1.5.3 數(shù)據(jù)類型大小 51
1.5.4 虛擬機(jī)的好處 52
1.6 小結(jié) 53
1.6.1 底線:為什么出現(xiàn)bug 54
1.6.2 改進(jìn)清單:bug主動(dòng)預(yù)防 54
第2章 調(diào)試技巧 55
2.1 初始步驟 56
2.1.1 復(fù)現(xiàn)問題 56
2.1.2 無法復(fù)現(xiàn)的問題 56
2.1.3 驗(yàn)證bug是真實(shí)存在的 59
2.2 消除缺陷:快速修復(fù) 60
2.2.1 檢查近期改動(dòng) 60
2.2.2 使用跟蹤信息 61
2.2.3 似曾相識 61
2.2.4 明確何時(shí)放棄 61
2.3 消除缺陷:科學(xué)方法論 62
2.3.1 一般步驟 62
2.3.2 定位問題:增量集成法 63
2.3.3 定位問題:二分法 64
2.3.4 理解問題 64
2.3.5 防范失誤 65
2.3.6 診斷工具 67
2.3.7 基礎(chǔ)調(diào)試操作 75
2.4 保留記錄 80
2.4.1 個(gè)人記錄 80
2.4.2 協(xié)同開發(fā)下的記錄 81
2.5 小結(jié) 84
第3章 理解問題 86
3.1 知識是如何丟失的 87
3.1.1 競爭 87
3.1.2 人員流失 89
3.1.3 升職 90
3.2 難懂的代碼 91
3.2.1 設(shè)計(jì)問題 91
3.2.2 混淆 95
3.2.3 誤導(dǎo)性的代碼 104
3.3 反向工程 105
3.3.1 通用策略 105
3.3.2 對策 111
3.3.3 建立知識庫 116
3.4 小結(jié) 118
第4章 調(diào)試器內(nèi)部機(jī)制 119
4.1 調(diào)試器的種類 119
4.1.1 機(jī)器調(diào)試器與符號調(diào)試器 119
4.1.2 調(diào)試基礎(chǔ):自定義構(gòu)建 125
4.1.3 調(diào)試基礎(chǔ):系統(tǒng)調(diào)用 136
4.1.4 調(diào)試基礎(chǔ):解釋器 151
4.1.5 內(nèi)核調(diào)試器 155
4.1.6 界面:命令行與圖形用戶界面 157
4.2 符號調(diào)試器擴(kuò)展 157
4.2.1 動(dòng)態(tài)斷點(diǎn) 157
4.2.2 單步執(zhí)行 158
4.3 應(yīng)對策略 159
4.3.1 系統(tǒng)調(diào)用 159
4.3.2 移除調(diào)試信息 160
4.3.3 代碼鹽 161
4.3.4 混合內(nèi)存模型 162
4.4 小結(jié) 163
第5章 優(yōu)化:內(nèi)存占用 165
5.1 被遺忘的歷史 167
5.2 程序的內(nèi)存布局 168
5.2.1 場景:單段程序 169
5.2.2 場景:僅代碼段和數(shù)據(jù)段 170
5.2.3 場景:所有4種段類型 171
5.3 代碼段 172
5.3.1 剪切粘貼式編程 172
5.3.2 宏 175
5.3.3 僵尸代碼 177
5.4 數(shù)據(jù)段 177
5.4.1 雙重用途的數(shù)據(jù)結(jié)構(gòu) 178
5.4.2 位域 180
5.4.3 壓縮算法 181
5.5 棧 183
5.5.1 活動(dòng)記錄 184
5.5.2 函數(shù)參數(shù) 188
5.5.3 局部變量 190
5.6 堆 191
5.6.1 內(nèi)存池 192
5.6.2 回收 196
5.6.3 延遲實(shí)例化 197
5.6.4 跟蹤內(nèi)存使用情況 199
5.7 小結(jié) 201
第6章 優(yōu)化:CPU周期 202
6.1 程序控制跳轉(zhuǎn) 203
6.1.1 標(biāo)簽與GOTO 203
6.1.2 函數(shù)參數(shù) 205
6.1.3 帶可變參數(shù)的函數(shù) 206
6.1.4 系統(tǒng)調(diào)用 207
6.1.5 遞歸 210
6.2 程序控制分支 211
6.2.1 查找表 211
6.2.2 switch與if-else 213
6.2.3 常見情況放在前,罕見情況放在后 215
6.3 程序控制循環(huán) 215
6.3.1 循環(huán)不變量 216
6.3.2 函數(shù)調(diào)用 217
6.3.3 數(shù)組引用 219
6.3.4 分解復(fù)合布爾表達(dá)式 220
6.3.5 循環(huán)展開 221
6.3.6 循環(huán)干涉 221
6.3.7 提取程序分支語句 221
6.4 內(nèi)存管理 222
6.4.1 處理開銷 223
6.4.2 引用局部性 226
6.5 輸入/輸出 227
6.5.1 緩存 228
6.5.2 緩沖 229
6.5.3 先進(jìn)的技術(shù) 230
6.6 異常 231
6.6.1 動(dòng)態(tài)注冊模型 234
6.6.2 靜態(tài)表模型 235
6.6.3 處理開銷 235
6.6.4 濫用異常 237
6.7 昂貴的操作 237
6.7.1 消除常見的子表達(dá)式 237
6.7.2 浮點(diǎn)運(yùn)算神話 237
6.7.3 強(qiáng)度折減 239
6.7.4 同步 240
6.7.5 簡寫操作符的神話 243
6.8 快速修復(fù) 243
6.8.1 更好的硬件 243
6.8.2 約束問題 244
6.8.3 編譯器設(shè)置 244
6.9 小結(jié) 245
6.10 信息匯總 246
第7章 最后的贈(zèng)言 247
7.1 對于源代碼完整性的其他威脅 248
7.1.1 時(shí)髦技術(shù):一個(gè)案例研究 248
7.1.2 洗腦101 249
7.1.3 真正的問題 249
7.2 保持書面記錄 250
7.2.1 悄悄記錄 250
7.2.2 隱私的神話 250
7.3 歷史總是重演 251

本目錄推薦

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