《调试九法》读书笔记
引发失败
这是一个逆而行之的过程。想要成功,我们先引发失败,而在摸清失败的根源之后,创造出成功。这个道理是不难理解的。然而,我们怎么引发失败,尤其是引发对成功有益的失败?
但如何才能让他失败呢?一种简单的方法是进行一次内部预演,还有一种同样有效的方法是掩饰给未来的投资者。如果碰巧没有客户或投资者在现场,那么你就必须设法正常使用,并观察它是如何出错的。
我们往往需要遵循下面的流程,来将“引发失败”这个过程变成一次有趣且成效慢慢的探索。
1.回到开始。从最初的源头开始,而不是从某个看似无错的中断点开始,进行下一步的查错。
2.模拟失败发生的场景。每一个失败都有其发生的原因,但当我们了解它之前,它是隐藏的。我们如果要到达这个失败,就要通过各种途径去趋近失败。而模拟失败发生的场景,就是一种首要的途径去趋近失败。
初学者往往会将“引发失败”和“模拟失败”混淆。书中讲到很多例子去说明这个道理,而在此处,我对两者的区别做一个总结。
引发失败 通过模拟失败发生的场景,在不知道失败本身机理的情况下,让失败再次发生。
模拟失败 通过某种人为的而非原程序本意的方式制造表观相同的失败。这往往是一种拙劣的模仿,为达到失败而制造失败,为实现失败的表象去制造失败,而不是去将失败作为出发点,寻求程序中导致失败的漏洞。
仔细观察失败
你必须能看到失败。如果它不是每次发生,那么就必须忽略掉不发生的时候,而在每次发生时观察它。关键是在每次运行时捕捉相关的信息,以便在发生失败之后查看这些数据。方法就是让系统在运行的时候尽可能多地输出信息,并把它们记录到“调试日志”中去。