追求代码质量: 驯服复杂的冗长代码
2009-11-19 00:00:00 来源:WEB开发网核心提示:我毫不惭愧地承认,在看到复杂的代码块时,追求代码质量: 驯服复杂的冗长代码,我也会感到恐惧和心里发毛,事实上,就会明白过多的条件会给以后带来麻烦,使测试和维护变得很困难,我敢说您在遇到大量方法和乱七八糟四处蔓延的类时,也会 有些心里发毛的
我毫不惭愧地承认,在看到复杂的代码块时,我也会感到恐惧和心里发毛。事实上,我敢说您在遇到大量方法和乱七八糟四处蔓延的类时,也会 有些心里发毛的。不能说在这些情况下寻求退路的人不是完人,这只是优秀开发人员的一种本能。过于复杂的代码难以测试和维护,这通常还意味着更高的出错率。
我在 本系列前面的文章 中已经解释了圈复杂性,它是令人讨厌的代码的一种先兆。具有高圈复杂度值的测试方法几乎总是把事情弄得一团糟,无法轻易收场。上一个月,我向您展示了如何使用 Extract Method 模式重构您的代码,从而将您带出迷宫。降低方法的复杂度可以使代码更易于测试和维护,如图 1 所示:
图 1. 降低复杂度可以使代码更易于维护和测试
不过,圈复杂性并不是确定高风险代码的惟一复杂性度量。您还可以利用类长度、方法长度和内部类耦合。这些度量之间存在着错综复杂的关联,但是很容易发现这些关联。这个月,我将解释它们为什么那么重要,以及如何使用 PMD 和 JavaNCSS 跟踪它们。
代码太多了!
了解简单代码和流畅代码之间的区别非常重要。简单代码不必过分简单或易于编写,只需易于理解 即可。您可以使用 C++ 编写简单代码,就像使用 Visual Basic 编写它们那样。不过,用任何语言反简化 代码的最快方式都是一次编写大量的代码。
考虑一下如何将此规则应用于方法和类。大多数人对记住信用卡号感到头疼的一个简单原因是,我们一次只能管理 7(±2) 片数据。了解了这一点,就会明白过多的条件会给以后带来麻烦,使测试和维护变得很困难。相同的原理也可以应用于逻辑块。
更多精彩
赞助商链接