在检入代码之前检测高的圈复杂度限制

时间:2015-09-24 15:52:46

标签: cyclomatic-complexity

我想知道在检查代码之前有哪些工具可用于检测错误代码(高圈复杂度限制)。 在遗留项目上工作,已经有很多意大利面条代码了。声纳在这种情况下不一定有用,因为目的不是重构遗留代码。只有,新添加的代码应该是干净的(呃)。

重要提示:在这种情况下,清洁代码与不良代码之间的区别只是"循环复杂性"。

2 个答案:

答案 0 :(得分:1)

静态代码分析有三个主要参与者,即

  1. Findbug :所有标准违规行为&这里指出了逻辑问题以及所要求的CC问题。
  2. PMD :此处再次指出所有违反标准的问题。
  3. Checkstyle :所有标准违规行为以及代码格式问题。
  4. 我的建议应该始终没有Findbug问题,因为除了标准违规之外,它所指出的逻辑问题是分开的。

    声纳是一个很好的工具,但它有太多的依赖性来管理,而且设置也不是很简单。相反,人们可以把Findbug,PMD& Checkstyle仅在相应的项目POM上进行检查,甚至可以将其配置为在任何单个违规遇到的情况下终止构建过程,并在开始执行代码签入或构建测试之前将开发人员绑定到符合所有标准。

    请在下面找到相应的Maven插件详细信息:

    <groupId>org.codehaus.mojo</groupId>
      <artifactId>findbugs-maven-plugin</artifactId>
    
    <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-pmd-plugin</artifactId>
    
    <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
    

答案 1 :(得分:1)

您可以使用JArchitect工具满足此类需求,其强大的查询语言可让您轻松创建规则并将其集成到构建过程中,例如您可以执行以下查询:

from m in Methods where m.CyclomaticComplexity>20
select m
相关问题