(1)最大化静态检查。
尽可能设置final字段。
将不可能被改写的方法设置为final。
包括作为默认值的类。
对异常情况进行检查,以确保所有的客户端程序都能够处理异常情况。
定义新的异常类型精确区分各种异常情况。
当某个类的实例将一个状态或固定数目的状态用于composite层次结构中的不同子类中时,就要中断这个类。
清除所有可能性涉及平台相关性的行为。
在尽可能多的平台上进行测试。
将类型转换和instanceof测试降至最少。
使用单例设计模式帮助最小化instanceof的使用。
使用额外的方法和动态调度帮助最小化instanceof的使用。
(2)将引入bug的可能降至最低。
提取通用代码。
尽可能实现纯功能性方法。
在构造函数中初始化所有字段。
出现异常情况时立即抛出异常。
出现错误时立刻报告错误消息。
通过语法分析、类型检查等过程尽早发现bug。
通过类型转换、assertTrue()方法、文档和文档形式的参数在代码中置入断言。
尽可能在用户可观察到的状态下测试代码。