都是一些比较实用的习惯,能让程序的健壮性更强。
1. 断言真的是很实用,能查出一些意外的bug。这点感触比较深,插入一些必要的断言,这样不至于在程序执行N久以后才恍然发现在前面N远处一个参数什么的传错了。,而且几乎不会影响性能。关于断言的使用也有一些注意事项(在《卓有成效的程序员》等书里都有提到),比如:assert(getchar() == 'c');这个断言就影响了程序本身。
2. 对程序进行逐条跟踪。正如作者所说,有可能在逐条跟踪的时候觉得是浪费时间,但这能对这段代码的正确性有很好的把握(至少不会出现提交程序后别人再check 下来的居然编译都不过!),减少不少以后调bug的时间。
3.要注意程序语言里未定义的行为,如对于c里的函数memcpy,当dest~dest+size和 src~ src+size 这两段区间如果有交集的话,结果是未知的。
4. 边写代码边测试。(或者现在流行的测试先行?)
5. 关于程序员和测试员。"程序员测试代码,是从里向外测试,而测试员则是从外向里测试。" 程序员对自己的代码更了解,所以自己通过多加断言等方式测试自己的代码是很有必要的。
6. ......
.......
当然这很多的习惯都要在编码中才能有更好的体会。"临渊羡鱼,不如退而结网"。