从 SonarQube 接收有关设计和架构的反馈

Receive feedback from SonarQube in regards to design and architecture

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

更重要的是,此分析的主要任务之一是研究如何使用 SonarQube 分析和插件改进此代码库的体系结构和设计。我在研究过程中发现,曾经有一个矩阵在某种程度上做了我正在寻找的东西,即 SonarQube 依赖结构矩阵,但截至目前已贬值。

我还发现复杂度指标可用于调查每个 file/class/method 的复杂程度,但如果可能,我正在寻找更高级的设计和架构反馈。

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

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

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

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

如您所见,依赖矩阵已被删除。它可能对您来说无论如何都无法使用 - 这也是它被删除的部分原因。

正如您还注意到的,有关于 class 和方法复杂性的规则。此外,您还会在项目、模块、目录和文件级别找到复杂性指标。 (点击 'Structure'。)这些应该可以帮助您查明一些热点。

Java 规则 Cycles between packages should be removed 也可能有帮助编辑:该规则已删除 Java 插件 4.0),与复制相关的指标也可能如此。

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

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