追求代码质量: 驯服复杂的冗长代码
2009-11-19 00:00:00 来源:WEB开发网所有给定代码主体通常包含已分组的语句,它们拥有共同的目标,比如创建一个集合,将数据项添加到该集合中。但是,在一个长方法(long method)中分组数量众多的逻辑块可能会让人很快忘记该方法的总体意图,因为很少有人可以有效处理这样一个大的数据集。恰恰是这个缺点带来了代码基中的维护问题。冗长的方法是缺陷的避风港,因为很少有人可以有效地分析它们。长方法不仅完成太多的工作,也需要人们费很大的劲去理解!
就像长方法会让开发人员讨厌一样,长类(long class)也会令开发人员讨厌。相同的讨论也可以应用于总体代码,冗长的类可能会做太多的工作,并承担太多的责任。
什么样才算太长?
当然了,长方法或类的划分有点主观。有一个很有帮助的经验法则,您可以说非代码注释行超过 100 行的方法是长方法。不过,实际的数值是根据谈论的人而变化的。就我而言,截止点(cutoff point)大约是 50 行代码,但有些开发人员会说,如果某一方法需要您向下滚动整整一天才能看完,那么该方法太长了。截止点的定义取决于您自己。
类似地,您必须有自己的确定正确类大小的良好判断。许多人所提倡的一条经验法则是,类的代码行超过 1,000 行就可以说该类太长了。而另一些人则认为最好不要超过 500 行代码。
内部类耦合
对于一对象与其他对象之间的关系,复杂模式会不断重复其自身。对于导入许多外部依赖项或者拥有许多 public 方法的类,不但理解起来有些困难,而且所带来的责任重担的增加也会导致某种脆弱。
我将从依赖项开始。如果某一对象导入的外部类超过 80 个(不包括普通的 Java™ 系统库),那么就可以说该类具有高度输出耦合,这意味着更改导入的类可能会影响该类本身。在最糟糕的情况下,如果导入的是具体的类,并且它们的行为发生更改,那么执行导入的类可能会中断!
更多精彩
赞助商链接