簡報及筆記


除錯的角色

- 程式碼中會藏一些很奇怪的邏輯,並非全部都是工程師寫出的程式有bug,這可能是當初提出需求不合理,才會發生這種事情。

- 值得注意的是最後一行的項目。因為debug而引入新的bug而造成的狀況也很多。

或者用在重構程式碼時可以用更好的方式去寫,也可以更好的避免之後的缺陷產生
讓你有所收穫的缺陷
1. 理解你正在編寫的程式

- 看起來邏輯沒問題,但是跑起來發現問題一堆?
- 可以參考AI的邏輯
2. 明確去你犯了哪些類型的錯誤

3. 從程式碼閱讀者的角度分析程式碼品質

- 第一次接觸的人是否可以一眼就看得懂你在寫什麼?
- 未來的你能不能看得懂自己寫了什麼?
- ⇒ 可以找別人來讀讀你的code來幫助自己
4. 審視自己解決問題的方法

最後一點:是否可以自己發現問題,若每次都依靠別人,當下次再遇到一樣的問題,要怎麼解決?
5. 審視自己修正缺陷的方法

- 你引用的套件是否為主流套件
- 你只是解決問題,還是讓後續更好維護?
低效率的除錯方法

用猜測的方式除錯

例)


尋找缺陷

科學除錯

科學 = 可以重現問題,也可以用同樣的方法來解決
方法1:將錯誤狀態穩定下來

Jim親身例子)

方法2:尋找錯誤的原因
- 收集缺陷的相關資料
- 分析所收集的資料,並建構對缺陷的假設
- 確定怎樣去證實或分攤這個假設,可以對程式進行測試或檢查程式碼
(例如範例使用特殊符號、橫線、空格等等)
- 按照c所確定的方法對假設做出最終結論 ⇒確認錯誤的原因

錯誤分成兩種:你知道他不會錯、以及你知道他會錯的錯誤
方法3:修補缺陷
方法4:對所修補的地方進行測試
方法5:尋找是否還有類似的錯誤
小建議


和他人討論問題與休息一下可以讓自己進入Diffuse mode
相關資料>>
Focused and Diffuse: Two Modes of Thinking
暴力除錯


註解一段→測試→註解另一段→測試