{作者 David J.Agans1 https://book.douban.com/subject/5376270/}
理解系统
理解系统的基本方法就是阅读手册,逐字逐句阅读整个手册,避免跳读,问题的线索可能就隐藏在被略过的那些章节中。知道工作流程,尝试寻找 bug 时,必须知道要查找的路线。了解工具,调试工具是用来观察系统的眼和耳,必须选择正确的工具,正确地使用工具,并正确地解释得到的结果。
制造失败
原因是可以观察它,可以专心查找原因,可以判断是否已修复问题。从头开始,引发失败。
不要想,而要看
观察失败,一定要亲眼看到实际错误是如何发生的,观察往往比猜测能够更快地找到问题。查看细节,一直观察,直到把问题的原因锁定在几种可能性之内。猜测只是为了确定搜索的重点目标。
分而治之
调试的核心。缩小搜索范围,从有问题的支路开始查找问题。
一次只改一个地方
使用步枪,而不要用散弹枪。与正常系统进行比较。追问:自从上一次能够正常工作以来你更改了什么?
保持审计跟踪
记下你的每步操作、顺序和结果。魔鬼隐藏在细节中,描述事情的时候要具体且一致。
检查插头
敢于怀疑自己的假设,从头开始检查。
获得全新观点
要想重新理清一个案子的头绪,最好的方法就是把它将给别人听 — 福尔摩斯
寻求帮助,询问专家,借鉴别人的经验。
如果你不修复 bug,它将依然存在
bug 从来不会自己消失,要从根本上解决问题。