code-analysis - 是否可以使用 SonarQube 实现类似 CAST 的分析?

标签 code-analysis sonarqube pmd static-code-analysis

在我的(大)公司中,我们主要使用两种工具进行代码分析:

  • Sonar(Qube) - 在开发过程中,与 CI 紧密集成,了解并喜爱我的开发人员。
  • CAST - 流程所需。没有连续的测量,每年只有几次,例如在主要版本上。 CAST 分析与开发完全脱钩,由单独的团队完成(我们只是发送交付包进行分析)。

正如您可能猜到的那样,我是开发人员,我(在某种程度上)了解 Sonar/PMD,但不了解 CAST。无论如何,我对 CAST 分析的频率不太满意,但这可能不是我可以影响或改变的过程。

所以我在想是否有可能在 Sonar 中实现与 CAST 类似的规则。当然不是全部,也不是全部,但至少有一些内容不会对发布的 CAST 分析产生太大的意外。

我用谷歌搜索了一遍,寻找诸如“Sonar/PMD 的 PMD 规则”之类的内容,但找不到任何内容。

我的问题是针对那些有 Sonar 和 CAST 经验的人:

是否可以在 Sonar 中实现 CAST 分析规则(或其某种近似值)?

最佳答案

我知道 CAST 和 SonarQube 这两种工具。 您的问题的答案将取决于技术:您使用哪些语言进行开发?您使用任何框架吗?

不要只告诉我 J2EE,因为这涵盖了很多不同的语言:Java、JavaScript、JSP、HTML,...不谈论框架(Spring、Hibernate、Struts,...),并且每个解决方案都会这些语言有不同的分析器,具有不同的规则。

CAST 和 SonarQube 之间的主要问题是,两者都使用词法分析来识别对编程最佳实践的违反,但 CAST 还可以识别组件之间的链接(这就是它速度较慢的原因)。因此,CAST 将具有一些指标,例如扇入/扇出和一些附加规则(它们称为架构或结构),例如避免从表示层直接访问数据层。此外,它还附带一些 xml 文件来分析框架组件。

这种规则可以代表额外的 20%,但这又非常依赖于语言。而且这两个工具的版本也不同,因为版本之间的规则数量可能不同。

不,我认为并非所有这些“架构”规则都可以通过 SonarQube 实现。然而,它们并不都非常关键,所以您不会错过太多。

我想你们公司使用 CAST 作为质量门? 在这种情况下,我建议与使用 CAST 的人合作,以确定哪些 CAST 规则对他们至关重要并可能触发 NoGo 或 KO。只要在这里发布这些规则,我相信您会得到一些好的评论。

请毫不犹豫地要求进一步的精确度。 问候。

关于code-analysis - 是否可以使用 SonarQube 实现类似 CAST 的分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26496292/

相关文章:

plugins - 在 Sonar 数据库中创建一个新表

java - Checkstyle 和 PMD 仅作为建议

java - PMD 规则上帝类 - 了解指标

.net - 如何在构建期间抑制静态代码分析?

delphi - 简单的代码分析器

每个循环的 Java 都被 PMD 标记为 UR 异常

java - SonarQube:创建自定义规则以获取类中的自定义注释

java - 将 jacoco.exec 文件加载到 Sonar 中以进行多模块项目

java - maven pmd 插件默认使用哪些规则集?

c# - Visual Studio GlobalSuppression.cs 文件和 UTF-16