《程序员修炼之道:从小工到专家》读后感(四)
今天看了看注重实效的偏执这部分
按合约设计
DBC关注用文档记载并约定软件的权利与责任,以确保程序的正确性。要注意调用某个函数时的前条件,后条件和类不变项。所以例程和任何潜在的调用者之间的合约可理解为:如果调用这满足了例程的所有前条件,例程应该在保证其完成时,所有的后条件和类不变项将为真。
死程序不说谎
当程序中某件被认为不可能发生的事情已经发生时,就需要尽可能早的终止它。
断言式编程
不要觉得你以为的就是你以为的,相信一些事情绝不会发生,想要确定能不能发生就要用断言确保它会不会发生,不要用断言代替真正的错误处理,断言检查的是决不应该发生的事情,让断言开着是一种很好的方式来确定它会不会发生。
何时使用异常
一个程序很有可能出现意想不到的异常,将异常用于异常的问题,通过异常处理,例程和他们的调用者被调用者更紧密的耦合在一起
怎样配平资源
大多数时候,资源使用遵循一种可预测的模式,分配,使用,解除其分配。对于一次不需要不只一个资源的例程,可以对资源分配的基本模式进行扩展的:以与资源分配的次序相反的次序解除资源的分配;在代码的不同地方分配同一组资源时,总以相同的次序分配他们,降低死锁的可能性。