背景回顾:在快节奏的《操作系统》课中,插入一些 (重要得要命但与操作系统不完全相关的) 休闲内容。
本讲内容:调试理论:Fault, Error 和 Failure,以及我们应该如何应对程序里层出不穷的 bugs。
调试理论给了大家在遇到 “任何问题” 时候 self-check 的列表:
看完之后的例子,你相信对这个过程会有更好的理解。
如果我们观察到软件发生了 “超出预期的表现”,我们需要理解的是我们的 “预期” 经历了需求 → 设计 → 代码 → Fault → Error → Failure 的漫长过程,其中的每一个过程多多少少都有些失控:我们的预期本身可能有误,或是对软件需要实现的需求有误解。而设计失误、编码错误最终反应到可观测的表现时,有时可能已经太晚了。因此,我们 “写好代码、做好测试、多写断言” 是十分重要的。