小心沒大錯!新手程序員排錯指南
魯尚文
商品描述
排查故障是困擾新手程序員的主要問題之一。本書旨在幫助新手程序員消除對代碼錯誤的抵觸情緒,提升解決故障的能力,同時掌握編寫高質量程序的方法。
本書共分為6章,通過漫畫導讀和豐富的示例,生動剖析了新手程序員對代碼錯誤產生抵觸情緒的原因,詳細介紹了錯誤信息的閱讀方法及程序員在編程過程中可能遇到的各種代碼錯誤,直觀講解了高效排查故障的策略、利用工具簡化調試流程的方法、應對復雜代碼故障的技巧,以及編寫易於調試代碼的方法。
作者簡介
櫻庭洋之,目前任職於Basic Japan公司,從事Web應用及智能手機應用的開發工作,喜歡編寫一些“無用但有趣”的程序。與望月幸太郎合著有《輕松理解JavaScript(新版)》一書。
目錄大綱
目錄
第1章 為什麽錯誤信息令人抵觸
1.1 學習如何閱讀錯誤信息 4
1.2 錯誤信息難以閱讀的原因 8
1.2.1 錯誤信息是用英文表述的 8
1.2.2 錯誤信息冗長 14
1.2.3 無法從錯誤信息中找到根本原因 16
1.3 為面對代碼錯誤做好準備 22
1.3.1 放鬆心態 22
1.3.2 難解決的代碼錯誤是學習的機會 22
1.3.3 掌握閱讀錯誤信息的技巧23
第2章 高效閱讀錯誤信息的方法
2.1 瞭解錯誤信息的組成部分 28
2.1.1 錯誤類別 29
2.1.2 錯誤描述 31
2.1.3 堆棧跟蹤 31
2.2 瞭解錯誤類別41
2.2.1 SyntaxError 42
2.2.2 ReferenceError 43
2.2.3 TypeError 44
2.2.4 RangeError 46
2.2.5 其他編程語言環境中的錯誤類別 47
第3章 如何高效排查故障
3.1 什麽是調試 52
3.2 打印調試 55
3.2.1 使用打印調試解決故障的示例 57
3.2.2 跟蹤代碼路徑排查故障 60
3.3 二分搜索 62
3.3.1 什麽是二分搜索62
3.3.2 二分搜索與打印調試相結合 64
3.3.3 確定引發代碼錯誤的真正位置 69
3.3.4 對大型單元使用二分搜索74
3.4 最小可復現示例 78
3.5 關於提高調試效率的幾點思考 83
3.5.1 事先提出假設 83
3.5.2 每次只驗證一個假設 84
3.5.3 靈活提出並驗證假設 85
3.5.4 不遺餘力 85
第4章 利用工具簡化調試
4.1 調試的有力工具—調試器 90
4.2 斷點功能 92
4.2.1 什麽是斷點 92
4.2.2 斷點的設置方法93
4.2.3 使用斷點進行調試 96
4.3 單步調試功能 107
4.3.1 單步跳入 107
4.3.2 單步跳過 109
4.3.3 單步跳出 110
4.3.4 單步調試的使用場景 112
4.4 條件斷點功能 113
4.4.1 使用條件斷點進行調試 114
4.4.2 瀏覽器內置條件斷點 117
4.5 監視變量功能 118
第5章 如何應對難以解決的代碼故障
5.1 收集信息的技巧 124
5.1.1 使用搜索引擎檢索信息的技巧 124
5.1.2 使用GitHub檢索信息的技巧 127
5.1.3 在社區提問 131
5.1.4 讀取主要信息 133
5.2 沒有錯誤信息時如何解決故障 136
5.2.1 檢查的位置不正確 136
5.2.2 未檢查錯誤信息的相關輸出配置 138
5.2.3 錯誤被異常處理機制捕獲 140
5.3 如何解決無法復現的故障 142
5.4 生產環境中的錯誤信息 144
5.4.1 錯誤信息的收集方法 144
5.4.2 日誌管理技術的發展 145
第6章 編寫便於調試的代碼
6.1 避免不必要的重新賦值 152
6.1.1 限制重新賦值的機制 154
6.1.2 限制重新賦值對調試的幫助 154
6.2 盡量縮小變量的作用域 157
6.3 瞭解單一責任原則 160
6.4 認識和使用純函數 163
6.4.1 什麽是純函數 163
6.4.2 純函數和非純函數的比較 165
6.4.3 如何利用純函數 167
6.5 編寫類型明確的代碼 168
6.5.1 通過註釋標明類型 169
6.5.2 利用編程語言的特性附加類型信息 170
6.6 編寫有助於調試的測試代碼 173
6.6.1 測試代碼示例 173
6.6.2 測試代碼和調試的關系 175
6.6.3 發生故障時,編寫測試代碼 176
後記 177