- Effective Debugging:軟件和系統(tǒng)調(diào)試的66個有效方法
- (希)迪歐米迪斯·斯賓奈里斯
- 907字
- 2019-09-02 17:53:00
譯者序
十幾年前,我看過Spinellis先生所寫的《代碼閱讀》(Code Reading)和《代碼質(zhì)量》(Code Quality)兩本書,特別喜歡這種全面講解編程工作中某個領(lǐng)域的教程,這次又讀到同一位作者所寫的《Effective Debugging》,感覺依然很精彩。
這是一本在思路和技巧上都較為豐富的調(diào)試手冊。
從思路方面來說,本書介紹了許多宏觀與微觀的調(diào)試辦法。例如,在面對軟件故障時,既可以從整體情況入手,進(jìn)行自上而下的調(diào)試,也可以從具體故障入手,進(jìn)行自下而上的調(diào)試,還可以考慮用高級的抽象機(jī)制、便捷的程序庫、直白的算法、簡潔的邏輯,乃至另外一門更為合適的編程語言,對bug繁多的代碼進(jìn)行改寫——這些思路,都能在調(diào)試工作中給人以啟發(fā)。
從技巧方面來說,本書介紹了眾多的調(diào)試工具與手法:有些可以在程序運行之前,設(shè)置斷點并對表達(dá)式與程序的狀態(tài)做出斷言;有些可以在程序運行之中,將各種調(diào)試機(jī)制與程序進(jìn)行連接,并對其執(zhí)行情況進(jìn)行記錄;有些則可以在程序崩潰之后,通過核心轉(zhuǎn)儲等信息來還原當(dāng)時的情境。此外,作者還講解了如何把這些前置、中置和后置技巧與版本控制系統(tǒng)、靜態(tài)分析工具、動態(tài)分析工具及性能測評工具結(jié)合起來使用,以提升調(diào)試的效率。
全書的8個大類中含有66條技巧,這些技巧都是圍繞著“重現(xiàn)bug——探查bug——解決bug”這一主線而展開的。針對這三個階段,作者進(jìn)行了詳細(xì)的分步講解,給出了很多實用的范例代碼與建議,而且特別強調(diào)了如何才能穩(wěn)定地捕獲并重現(xiàn)bug,以便給后面兩個階段打下良好的基礎(chǔ)。
本書或許還能促使大家思考另外一個問題,那就是:在修復(fù)完bug之后,怎樣防止有人向程序中引入類似的bug?這可以從代碼質(zhì)量與測試兩方面入手。提高代碼質(zhì)量,能夠減少程序員對代碼的誤解,進(jìn)而降低引入bug的概率;而對測試進(jìn)行完善,則能夠提前捕獲很多問題,從而不會使這些問題逐漸積累成復(fù)雜的bug。這些理念,作者在書中也時常會提到。
總之,這是一本可以打開思路并拓寬眼界的書籍,大家不妨在自己慣用的調(diào)試環(huán)境之外,多嘗試一下作者所介紹的其他技法、工具和語言,以求達(dá)到舊學(xué)與新知的融合。
翻譯本書的過程中,我得到了機(jī)械工業(yè)出版社華章公司諸位編輯和工作人員的幫助,在此深表謝意。
由于譯者水平有限,不足與疏漏之處請大家發(fā)郵件至eastarstormlee@gmail.com,或訪問github.com/jeffreybaoshenlee/debugging-errata/issues留言,給我以批評和指教。
愛飛翔
- MATLAB圖像處理超級學(xué)習(xí)手冊
- C語言程序設(shè)計(第2版)
- Visual C++串口通信技術(shù)詳解(第2版)
- Python Data Analysis(Second Edition)
- SAP BusinessObjects Dashboards 4.1 Cookbook
- Unity 2D Game Development Cookbook
- SQL Server與JSP動態(tài)網(wǎng)站開發(fā)
- Spring Boot實戰(zhàn)
- 區(qū)塊鏈項目開發(fā)指南
- Python語言科研繪圖與學(xué)術(shù)圖表繪制從入門到精通
- Learning Nessus for Penetration Testing
- C語言程序設(shè)計
- C語言從入門到精通
- 量子計算機(jī)編程:從入門到實踐
- Effective C++:改善程序與設(shè)計的55個具體做法(第三版)中文版(雙色)