科学方法¶
科学方法其实一个流程图就列完了。如图(呃,直接从视频中截了图片过来):
用段流程化的文字来描述就是:
- 根据程序的代码. 运行情况. 失败情况. 观察结果等等因素,提出一个假说(hypothesis),也就是上一部分,准备工作中的第3条,可能的bug解决方案。转步骤2.
- 预测结果,记录,并进行实验,再记录观察结果,比对。转步骤3。
- 如果比对结果一致,表示实验结果支持提出的假说,可以对假说进行改进,再转步骤2(图片中是转步骤1);否则表示假说不符,不正确,拒绝掉,转步骤1,提出新假说。 直到假说不能再改进,且所有实验(所有测试)结果都符合,则转入步骤4.
- 假说能解释并预测实验(测试)结果,所以变成一个学说,调试里就是诊断结果(诊断报告)。OVER。
这个过程很简单,看过一遍后,多数人都能理解并记住。难点就在于应用上。视频里,Zeller教授说,对于经验丰富的程序员来说,如果能在5分钟内解决问题,确实可以不用这么系统或者叫死板地使用科学方法。
但对于新手、 生手来说,需要强制地使用这么一个方法、过程。根据一万小时理论,不断地刻意练习,这样才会进步,真正地向高手转变。
例外,只在于当看到程序出错,甚至运行程序的那一刹那,就能想到bug所在,这种情况下自然是直接修改代码即可。
但只要想法不正确,或10秒内没想到问题所在,1分钟内无法解决bug,就要强制地使用科学方法。当成长为专家. 高手之后,科学方法已经成为习惯,自然能掌握好使用它的时机。
恭喜¶
恭喜你看完科学方法这篇, 本来打算写 知维教程的, 但感觉编不出问题, 因为几个步骤都是语言描述的, 很难引导、判断回答。
下一篇 显式调试