注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件工程及軟件方法學軟件驅魔:調試和優(yōu)化遺留代碼的藝術

軟件驅魔:調試和優(yōu)化遺留代碼的藝術

軟件驅魔:調試和優(yōu)化遺留代碼的藝術

定 價:¥59.00

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

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

內容簡介

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

作者簡介

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

圖書目錄

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