能通过所有测试
没有重复代码
一个方法做一件事
1.有意义的命名
名副其实;避免误导;做有意义的区分;使用读的出来的名称;使用可搜索的名称;
类名称和对象名称应该是名词或者名词短语;
方法名称应该是动词或者动词短语;
2.函数
短小;只做一件事;函数参数要尽量少,不需要的参数不要传入,参数太多就封装成类;
使用异常;抽离try/catch代码块;避免重复代码
3.注释
版权和著作权声明;对步骤的解释;认真写注释,否则不如不写
4.异常
合理抛异常简化代码
不返回null
5.边界
使用第三方代码时要确定好边界,做好测试
6.单元测试
自动化单元测试
7.类
短小;单一权责原则;系统应该由许多短小的类组成;
8.系统
适合才是最好的;
9.迭代
运行所有测试;不可重复;表达意图;简单有效;
软件项目的主要成本在于长期维护;
10.并发编程
并发是一种解耦策略;
并发防御原则:单一权责原则;限制数据作用域;使用数据副本;线程尽可能独立;
限定资源;互斥;线程饥饿;死锁;活锁;
生产者-消费者模型;读者-作者模型;筷子死锁模型(宴席哲学家模型);
正确关闭;可插拔;分步测试;
11.逐步改进