第二十三章:调试
理解你正在编写的程序
明确你犯了哪种类型的错误
从代码阅读者的角度分析代码质量
审视自己解决问题的方法
审视自己修正缺陷的方法
程序员们往往不愿意使用现成的数据来约束他们的推理。他们往往喜欢进行琐碎和无理性的修改,而且他们通常不愿意推翻以前不正确的代码。
科学的调试方法
- 通过可重复的试验收集数据
- 根据数据构造一个假说
- 设计一个实验来证明假说,控制变量
- 根据需要重复上面的步骤
把错误的发生稳定下来,稳定重现。
采用多种方法重现错误并提炼产生错误的测试用例
利用工具
用更多的数据生成更多的假设
把需要尝试的事情逐条列出
缩小嫌疑代码的范围,删除排查法
检查最近修改的代码
在代码中加入打日志的功能
修正缺陷:
在动手之前先要理解问题和程序本身,治本而不是治标。