1

我正在使用 SonarQube、Jenkins 和 Bitbucket 分析一个主要由 Java 组成的代码库,该代码库非常大(约 100 万行代码)。

更重要的是,该分析的主要任务之一是研究如何使用 SonarQube 分析和插件来改进该代码库的架构和设计。我在研究过程中发现,曾经有一个矩阵可以满足我的要求,即 SonarQube 依赖结构矩阵,但此时已贬值。

我还发现了复杂度指标,用于调查每个文件/类/方法的复杂程度,但如果可能的话,我正在寻找更高级的设计和架构反馈。

这是我目前使用的 SonarQube 服务器(运行 v5.3)中的插件:

  • Checkstyle v2.4
  • Findbugs v3.3
  • git v1.1
  • Java 3.11-build4121
  • Java 属性 v1.5
  • PMD v2.5
  • SVN v1.2

也就是说,我正在寻找有关如何使用 SonarQube 使用软件指标或类似指标来查找架构缺陷或改进领域的信息。在我的研究过程中,我没有发现任何与 SonarQube 如何用于此目的的明确关系。

因此,我的问题是如何使用 SonarQube 和某些插件在代码库中找到架构和设计改进(例如通过查看随时间的不同变化)?

我很高兴收到您的任何反馈或问题。

4

1 回答 1

3

正如您所注意到的,依赖矩阵已被删除。无论如何,它可能对你来说是不可用的——这也是它被删除的部分原因。

您还注意到,有一些关于类和方法复杂性的规则。此外,您还会发现项目、模块、目录和文件级别的复杂性指标。(点击“结构”。)这些应该可以帮助您查明一些热点。

应该删除包之间的 Java 规则循环也可能会有所帮助编辑:该规则已在 Java 插件 4.0 中删除),与重复相关的指标也可能有所帮助。

除了这些之外,我认为您所追求的高级设计和架构反馈真的不可用。

我认为在这方面不会对您有太大帮助的是 CheckStyle、PMD 和 FindBugs 插件。前两个中最有价值的规则已被 Java 插件替换,并且大部分 FindBugs 规则也已被替换。

于 2016-03-14T12:41:09.023 回答