第四章 注重实效的偏执
按合约设计
没有合约,编译器所能做的只是确保子类符合特定的方法型构(signature)。但如果我们适当设定基类合约,我们现在就能够确保将来任何子类都无法改变我们的方法的含义
死程序不说谎
尽早检测问题的好处之一是你可以更早崩溃。而有许多时候,让你的程序崩溃是你的最佳选择。其他的办法可以是继续执行、把坏数据写到某个极其重要的数据库或是命令洗衣机进人其第二十次连续的转动周期。
断言式编程
无论何时你发现自己在思考“但那当然不可能发生”,增加代码检查它。最容易的办法是使用断言
当然,传给断言的条件不应该有副作用。还要记住断言可能会在编译时被关闭一一决不要把必须执行的代码放在rt中。
不要用断言代替真正的错误处理。断言检查的是决不应该发生的事情
何时使用异常
将异常用于异常的问题。
怎样配平资源
分配资源的例程要负责释放它。
以与资源分配的次序相反的次序解除资源的分配。因为先后2个资源可能会有依赖关系。
相同的顺序分配同一组资源。降低死锁的机率。
要会用try{ } finally{ }
要学会Dispose()
与上一节相呼应。如果它不可能发生,就用assert。
极端情况下1个月会少于28天,a=2;b=3;a+b!=5,三角形内角和不是180度,一分钟没有60秒,(a+1)<=a 标签:断言,子类,小工,程序员,修炼,合约,资源 From: https://www.cnblogs.com/JJTyyds/p/16837182.html