程序员的修炼之道:从小工到专家 读书笔记四
第四章 注重实效的的偏执
本章开头就说明了:你不可能写出完美的软件。给定了这么压抑的事实,那么注重实效的程序员如何把他转化为有利条件呢?
他们不信任自己,这对自己会犯的错误,做出防卫型代码。
按合约设计
通过合约进行设计,按合约设计:Designed by Contract,俗称DBC。合约:合约约定了进入一个函数/方法/模块的前条件,即进入模块必须满足的条件,常常指满足模块运行的情景或变量取值范围等等;后条件,即模块需要达成的结果,模块运行之后所能达到的状态;类不变项,是对于模块的约束,在调用模块前后始终为真的一些描述。
死程序不说谎
一个出现问题的程序可能会因为异常操作造成很大的破坏,所以运行出现问题时,崩溃好于破坏。要利用异常机制。早崩溃。早发现问题。
断言式编程
更好的暴露了调用者的错误,便于调试,最少的处理代价。
何时使用异常
检查每一个可能的错误,尤其是意料之中的错误是有必要的。要将异常用于真正异常情况的处理而非模块逻辑的一部分。检查这一点的方式是去掉异常,观察模块能否正常运作。错误处理器是另一种选择。
怎样配平资源
申请资源后,要记得最后解除该资源,在java中配平资源,无论怎样的运行,最后都要用finally代码段进行资源的关闭。