(总结)编写高质量c语言代码 第3 章为子系统设防

1.瓶颈子程序是加入断言的绝佳之处,由于它可使咱们用不多的代码就可以进行很完全的错误检查。
2. 一般,子系统都要对其实现细节进行隐藏,所隐藏的实现细节可能至关复杂。在进行实
现细节隐藏的同时,子系统为用户提供了一些关键的入口点。程序员经过调用这些关键的入
口点来实现同子系统的通信。所以若是在程序中使用这样的子系统而且在其调用点加上了调
试检查,那么不用花很大力气就能够进行许多的错误检查。
3. 这里给出的建议是:当子系统编写完成以后,要问本身:“程序员什么状况下会错误地 使用这个子系统,在这个子系统中怎样才能自动地检查出这些问题?”
4. 要消除随机特性─── 使错误可再现。例:在消除无定义特性过程当中不能简单的用0去填充申请的内存,要真正的消除随机性,防止隐藏错误!!
5. 冲掉无用的信息,以避免被错误地使用。对于已经释放的系统内存,出于防止依然有指针错误,则将全部有用内存信息覆盖掉在释放!!!
6. 用#ifdef 来讲明局部变量很难看!
7. 若是某件事甚少发生的话,设法使其常常发生
8. 保存一个日志,以唤起你的注意, 保存调试信息,以便进行更强的错误检查
9. 创建详尽的子系统检查而且常常地进行这些检查
10. 这就是精心设计子系统测试代码的好处─── 当测试代码将错误限制在一个局部的 范围以内后,就经过断言把错误抓住并送到“广播室”,把正常的工做打断。对于程序员来 说,这真是再好不过的反馈。 努力作到透明的一致性检查。
11 . 若是可能的话,把测试代码放到所编写的子系统中,而不要把它放到所编写子系统的外
层。不要等到进行了系统编码时,才考虑其确认方法。在子系统设计的每一步,都要考
虑“如何对这一实现进行详尽的确认”这一问题。若是发现这一设计难于测试或者不可
能对其进行测试,那么要认真地考虑另外一种不一样的设计,即便这意味着用大小或速度做
代价去换取该系统的测试能力也要这么作。
相关文章
相关标签/搜索