糟糕的代码往往导致越改越烂,应该把这样的恶性循环改成良性循环,每次修改都竭尽所能力求做到极致。
大方面来说
提高可读性。
小块的代码,越小越好。
消除重复代码。
尽量进行抽象。
...
细节层面
一目了然的命名,不要怕名字长,包括类、变量、方法。
尽可能提高代码的表达力,而不是去使用注释。
删除无用代码,版本管理工具会帮你保留历史,不用担心找不到。
大胆写方法吧,先不要想着怎么优化,先专注于业务与功能,再进行优化。
方法短小,利于阅读。
一个方法只做一件事,业务多的能拆则拆。
方法参数能少则少,提高可读性。
条件句后面跟的代码段往往可以独立出来放到一个方法中。
if 跟肯定式更容易理解。
数字常量、字符串常量不要直接出现在代码中,应当先做声明,在代码中使用此常量的引用。
变量在靠近使用它的地方定义,私有方法在调用它的公有方法下面定义。
重载构造器时,考虑 用静态工厂方法替代构造器。
方法传参不要使用 null,将这个要求作为默认规则,对于特殊原因不能做到的情况应当使用 @Nullable 注解标明。
方法返回值亦如此,同上。(PS:当返回值为空时,可以选择抛出异常)
使用空对象,代替参数中为 null 的对象引用,《空对象模式》。
用简洁的方式做空值判断,比如 Java8 的 Optional、Guava 的 Preconditions 等。
严谨定义数据库表的空值约束,一定不为空的字段对应的实例属性无需进行空值判断。