本章着重谈论一些小事,测试、调试、计时。说是小事其实也是大事,想想自己曾经为调试一个程序而彻夜难眠的经历吧。这里面又有断言大法的叙述,「在测试时使用断言,而在产品发布时把断言关闭的程序员,就像是岸上操练时穿着救生衣,而下海时将救生衣脱下的水手」。在计时部分,作者展现了老练的洞察力,不过缓存溢出这种错误现在可能少见多了。
问题探讨
1.为什么说编码风格重要,至少在实际工业环境中,好的编码风格能让人更清晰程序的表述,出了问题,也能快速发现问题所在,带来了很可观的好处。而且不同的语言的风格是很不同的,譬如Java与C++之间,Python与Lisp之间,这也暗含了由于语言本身特质所显现出的本质思想。至于什么算好的风格?写得多自然就知道什么是好的风格了。
3.突变测试,偶尔会用用这种方法。不过小程序还是打印大法好使。
5.如果说O(logN)的还可以说说的话,O(1)的就想不到了(确定不是在逗我?),首先要明确是否要准确判断,还是一定概率下满足就可以。比如O(logN)可以尝试一个数字,取出来再用二分找位置,能放回去就说明很大概率有序(如果有相同数字还得另外考虑)。
7.参考访存局部性问题。