出版時(shí)間:2003-11 出版社:清華大學(xué)出版社 作者:艾倫 (Allen Eric) 頁數(shù):186 字?jǐn)?shù):254 譯者:王蕾
Tag標(biāo)簽:無
內(nèi)容概要
本書特點(diǎn):
● 把軟件開發(fā)的調(diào)試過程與極限編程方法融為一體
● 對(duì)軟件實(shí)例進(jìn)行深層次的剖析
● 為常見的調(diào)試問題提供便捷的參考清單
本書著重討論和日常編程工作息息相關(guān)的JavaBug模式。Bug模式是一種非常實(shí)用的概念,它能提高用戶檢測和修正代碼錯(cuò)誤的能力。 本書共分為三個(gè)部分:第I部分是有關(guān)Bug模式的理論基礎(chǔ),介紹Bug模式的基本概念及應(yīng)用這種方法的意義所在:第II部分是對(duì)最為常見的13種Bug模式的詳細(xì)講解,從中可以學(xué)會(huì)如何識(shí)別、預(yù)防這些典型Bug的方法;第III部分通過表格的形式對(duì)全書內(nèi)容進(jìn)行了總結(jié)。
本書適合于希望通過利用Bug模式來提高代碼質(zhì)量和效率的開發(fā)工程師和編程愛好者。 本書是關(guān)于計(jì)算機(jī)程序診斷和調(diào)試的方法論,它把調(diào)試過程描述為科學(xué)方法的一種完美體現(xiàn)。調(diào)試是人們?nèi)菀纵p視的一項(xiàng)任務(wù)。調(diào)試技能完全獨(dú)立于其他編程技能,如程序的擴(kuò)展性設(shè)計(jì)和軟件重用。Eric Allen專注于調(diào)試的理論,研究調(diào)試與軟件開發(fā)周期的其他階段的相關(guān)性。他特別強(qiáng)調(diào)了單元測試對(duì)于實(shí)際調(diào)試過程的重要性。同時(shí),Allen還指出,雖然測試和調(diào)試往往同步執(zhí)行,但它們卻是截然不同的兩項(xiàng)工作。
本書的第一部分奠定了全書的理論基礎(chǔ)。第二部分詳述在編程過程中會(huì)頻繁出現(xiàn)的各種類型的bug模式。對(duì)于每一種模式,Allen都對(duì)它的特征、處理方法和預(yù)防措施進(jìn)行了講解。Bug模式出現(xiàn)的頻率越高,被診斷和有效消除的可能性就越大。本書的最后部分為可能出現(xiàn)的問題和解決方案提供了一個(gè)參考清單,并為Java開發(fā)人員提供了各種資源,包括Web站點(diǎn)、設(shè)計(jì)工具和參考書目。
書籍目錄
第1章 混亂環(huán)境下的靈活方法 1.1 軟件設(shè)計(jì).實(shí)現(xiàn)和維護(hù)的趨勢 1.1.1 對(duì)于穩(wěn)定.安全系統(tǒng)的需求增加 1.1.2 傳統(tǒng)軟件工程技術(shù)的局限性 1.1.3 開放源代碼的軟件項(xiàng)目的可利用性 1.1.4 對(duì)于跨平臺(tái)語言的需求 1.2 在快節(jié)奏的社會(huì)中學(xué)習(xí) 1.3 bug模式簡述 1.4 小結(jié) 第2章 Bug.規(guī)范和實(shí)現(xiàn)方案 2.1 bug的概念 2.2 一體性規(guī)范 2.2.1 C++ 2.2.2 Python 2.2.3 ML 2.2.4 Pascal 2.3 規(guī)范的好處 2.4 實(shí)現(xiàn)方案與規(guī)范的差異 2.5 利用素材建立經(jīng)濟(jì)有效的規(guī)范 2.5.1 通過測試來排除規(guī)范錯(cuò)誤 2.5.2 單元測試的缺陷 2.6 小結(jié) 第3章 調(diào)試和開發(fā)過程 3.1 將調(diào)試當(dāng)作科學(xué)試驗(yàn) 3.1.1 逐步規(guī)范化.整合并發(fā)行軟件 3.1.2 在設(shè)計(jì)上盡可能保持簡單 3.1.3 結(jié)對(duì)編程 3.1.4 及時(shí)的客戶反饋 3.1.5 所有開發(fā)人員共享程序代碼 3.1.6 對(duì)任何可能產(chǎn)生問題的代碼進(jìn)行測試 3.2 將調(diào)試測試程序并入到單元測試集 3.3 展望:面向測試的語言 3.4 小結(jié) 第4章 調(diào)試和測試過程 4.1 可測試的設(shè)計(jì)模式 4.1.1 在模型中而不是視圖中保管代碼 4.1.2 使用靜態(tài)類型檢查發(fā)現(xiàn)錯(cuò)誤 4.1.3 使用中介器封裝跨越斷層線的功能 4.1.4 編寫帶有簡短簽名和默認(rèn)參數(shù)的方法 4.1.5 使用不修改內(nèi)存狀態(tài)的存取器 4.1.6 通過接口定義程序外組件 4.1.7 優(yōu)先編寫測試程序 4.2 GlobalModel接口 4.3 小結(jié) 第5章 科學(xué)的調(diào)試方法 5.1 軟件是永不磨損的機(jī)器 5.1.1 軟件有多重 5.1.2 小異常引起大問題 5.2 Bug模式可以加快診斷bug的速度 5.3 小結(jié) 第6章 關(guān)于bug模式 6.1 了解bug模式的重要性 6.2 選擇bug模式的原因 6.3 如何組織bug模式 6.4 Bug診斷的快速參考 第7章 RogueTile模式 7.1 Rogue Tile bug模式簡述 7.1.1 癥狀 7.1.2 起因.解決方法和預(yù)防措施 7.2 提取代碼的其他障礙 7.2.1 通用類型 7.2.2 面向方面的編程技術(shù) 7.3 小結(jié) 第8章 隨處可見的空指針 8.1 空指針異常不提供任何信息 8.2 難以捉摸的空指針 第9章 Dangling Composite模式 9.1 Dangling Composite bug模式簡述 9.1.1 癥狀 9.1.2 起因 9.1.3 解決方法和預(yù)防措施 9.2 小結(jié) 第10章 Null Flag模式 10.1 Null Flag bug模式簡述 10.1.1 癥狀 10.1.2 起因 10.1.3 解決方法和預(yù)防措施 10.2 健壯性和診斷證據(jù)的缺乏 10.2.1 在更好的位置處理異常 10.2.2 處理老式代碼 10.3 小結(jié) 第11章 Double Descent模式 11.1 Double Descent bug模式簡述 11.1.1 癥狀 11.1.2 起因 11.1.3 解決方法和預(yù)防措施 11.1.4 快速但不完善的修正方法 11.1.5 真正的修正方法 11.2 小結(jié) 第12章 Liar View模式 12.1 Liar View bug模式簡述 12.1.1 癥狀 12.1.2 起因 12.1.3 解決方法和預(yù)防措施 12.2 Liars并非僅出現(xiàn)在GUI程序 12.3 小結(jié) 第13章 Saboteur Data模式 13.1 Saboteur Data bug模式簡述 13.1.1 癥狀 13.1.2 語法原因 13.1.3 語義原因 13.1.4 解決辦法和預(yù)防措施 13.2 小結(jié) 第14章 Broken Dispatch模式 14.1 Broken Dispatch bug簡述 14.1.1 癥狀 14.1.2 起因 14.1.3 解決方法和預(yù)防措施 14.2 小結(jié) 第15章 Impostor Type模式 15.1 Impostor Type bug模式簡述 15.1.1 癥狀 15.1.2 起因 15.1.3 解決方法和預(yù)防措施 15.2 混合模式 15.3 小結(jié) 第16章 Split Cleaner模式 16.1 Split Cleaner bug模式簡述 16.1.1 癥狀 16.1.2 起因 16.1.3 解決方法和預(yù)防措施, 16.2 小結(jié) 第17章 Fictitious Implementation模式 17.1 Fictitius Implementation bug模式簡述 17.1.1 癥狀 17.1.2 起因 17.1.3 檢測Fictitious Implementation 17.1.4 解決方法和預(yù)防措施 17.2 小結(jié) 第18章 Orphaned Thread模式 18.1 Orphaned Thread bug模式簡述 18.1.1 癥狀 18.1.2 起因 18.1.3 解決方法和預(yù)防措施 18.2 Orphaned Thread和GUI 18.3 小結(jié) 第19章 Run-on Initializatier模式 19.1 Run-On lnitializatier bug模式簡述 19.1.1 癥狀和起因 19.1.2 解決方法和預(yù)防措施 19.2 修正bug 19.3 小結(jié) 第20章 Platform-Dependent模式 20.1 Platform-Dependentbug模式簡述 20.1.1 與供應(yīng)商相關(guān)的bug 20.1.2 與版本相關(guān)的bug 20.1.3 與操作系統(tǒng)相關(guān)的bug 20.2 小結(jié) 第21章 診斷清單 21.1 基本概念 21.2 模式清單 第22章 用于調(diào)試的設(shè)計(jì)模式 22.1 最大化靜態(tài)類型檢查 22.1.1 盡可能設(shè)置final字段 22.1.2 將不可能被改寫的方法設(shè)為fial 22.1.3 包括作為默認(rèn)值的類 22.1.4 利用已檢查異常確保所有客戶端程序可處理異常情況 22.1.5 定義新的異常類型來精確區(qū)分各種異常情況 22.1.6 利用特定State類 22.1.7 將類型轉(zhuǎn)換和instanceof測試降至最少 22.1.8 使用Singleton設(shè)計(jì)模式幫助最小化instanceof的使用 22.2 將引入bug的可能降至最低 22.2.1 提取通用代碼 22.2.2 盡可能實(shí)現(xiàn)純功能性方法 22.2.3 在構(gòu)造函數(shù)中初始化所有字段 22.2.4 出現(xiàn)異常情況時(shí)立即拋出異常 22.2.5 出現(xiàn)錯(cuò)誤時(shí)立刻報(bào)告錯(cuò)誤消息 22.2.6 盡早發(fā)現(xiàn)錯(cuò)誤 22.2.7 在代碼中置入斷言 22.2.8 盡可能在用戶可觀察到的狀態(tài)下測試代碼 22.3 征程尚未結(jié)束 第23章 參考資料 附錄 String-parsing列表構(gòu)造函數(shù) 術(shù)語表
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載