WEB开发网
开发学院软件开发Java 追求代码质量: 驯服复杂的冗长代码 阅读

追求代码质量: 驯服复杂的冗长代码

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: PMD 报告由源文件导致的违规,正如您在图 4 中可以看到的,追求代码质量: 驯服复杂的冗长代码(5),在本例中,只有少数几个方法的源代码行超过了 50 行:图 4. PMD Ant 报告的示例图片看不清楚?请点击这里查看原图(大图),通过继续监视复杂性度量,您可以作出更明智的决定,对于长类,P

PMD 报告由源文件导致的违规,正如您在图 4 中可以看到的,在本例中,只有少数几个方法的源代码行超过了 50 行:


图 4. PMD Ant 报告的示例
追求代码质量: 驯服复杂的冗长代码

图片看不清楚?请点击这里查看原图(大图)。

对于长类,PMD 有 ExcessiveClassLength 规则,长类的默认值为 1,000 行代码。对于 ExcessiveMethodLength 规则,很容易使用更适合的值覆盖默认值。此外,PMD 还有一个用来计算惟一类型的规则,即 CouplingBetweenObjects 规则。要计算导入,请参见 ExcessiveImports 规则。这两个规则都是可配置的。

使用 JavaNCSS 测量代码是否冗长

PMD 定义了用来分析源代码的特定规则,与 PMD 相对,JavaNCSS 分析代码基并报告所有一切 与代码长度相关的事项,包括类大小、方法大小和类中找到的方法数量。对于 JavaNCSS,阈值无关紧要,它计算所找到的每个文件并报告值,而不管 大小如何。尽管与 PMD 相比较而言,这类数据看起来似乎有些呆板(并且可能有点罗嗦!),但它有它存在的道理。

通过报告所有文件大小,JavaNCSS 使理解相关值成为可能,而 PMD 常常难以做到这一点。例如,PMD 只报告违规的文件,这意味着只理解部分代码基的数据,而 JavaNCSS 在上下文中提供了代码长度数据,如图 5 所示:


图 5. JavaNCSS Ant 报告的示例
追求代码质量: 驯服复杂的冗长代码

图片看不清楚?请点击这里查看原图(大图)。

结束语

绿地开发(greenfield development)是指开发团队首先开发一个空白的 IDE 控制台,并用漂亮、简洁的代码填充它,这只是软件应用程序生存期中一个非常小 的片段。如今,很多跨国企业仍然在运行基于 COBOL 的应用程序,从开发人员的角度看,这意味着要与您不认识的人在很久以前编写的代码作斗争。

在遇到这样的难题时,通常会令人感到非常厌恶,您只能在连续几天的时间里声称自己生病了进行逃避。随后的某一时刻,您必须面对大量代码块并将它们搞定。使用针对类长度、方法长度和内部类耦合的复杂性度量(即对象导入和惟一类型)是理解您所面临的困难的第一步。从一些与类大小和方法大小有关的经验法则开始,然后使用诸如 PMD 和 JavaNCSS 之类的工具详细介绍。

当第一次在遗留代码基上使用复杂性度量时,您将了解到一个庞大的数量,但不要就此停住脚步。通过继续监视复杂性度量,您可以作出更明智的决定,并在不断扩展和维护代码时降低风险。

上一页  1 2 3 4 5 

Tags:追求 代码 质量

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接