当前位置: 首页 > 知识库问答 >
问题:

PMD规则上帝类-了解度量

南宫天逸
2023-03-14

我们在Java项目中使用源代码分析器PMD。我正在努力解决报告中的问题,目前正在努力解决GodClass规则。我知道这个想法不是为了创建大型类。

然而,我不喜欢“巨大”这个词,因为它太模糊了。有人能解释一下这条规则是如何运作的吗?报告说。

可能的上帝类(WMC=47,ATFD=11,TCC=0.06315789473684211)

这些数字意味着什么?有人知道决定某个特定类是否庞大的公式吗?

这个规则的Javadoc声明

该规则使用[1]中描述的检测策略。违规行为是针对整个班级的。[1]兰扎。面向对象度量的实践。第80页。

嗯,我不会因为书的80页就订购一些书。

顺便问一下,有没有办法配置这样的规则,即更改其参数?

谢谢你的解释。

共有2个答案

霍鸣
2023-03-14

基线似乎被定义为常量。如果您想了解更多,可以在这里找到实现。(这是一段稍旧的代码,但它都在一个地方。)

衡子琪
2023-03-14

WMC代表加权方法计数或每类加权方法。WMC度量定义为一个类中声明的所有方法的复杂性之和。这个指标很好地指示了维护和开发特定类需要付出多少努力。

ATFD代表访问外国数据。此指标表示给定类直接或通过访问方法访问属性的外部类的数量。

TCC代表紧密的阶级凝聚力。TCC是通过属性访问直接连接的方法的相对数量。

如果WMC

你可以在《面向对象的度量在实践中》第55页上读到上帝类(你不必买这本书只读1页)。您也可以读取PMD留档。

 类似资料:
  • 使用for代码,可以看到一些与可能的上帝类相关的违规行为,如下所示: 我不想压制这些警告。那么,谁能解释一下,解决这一违规行为的最佳解决方案是什么。 谢谢你的解释。

  • 在J2EE中,可能无法正常工作。改用。 多少能说明他们在想些什么?这里的“J2EE”环境到底是什么意思?

  • PMD规则如下: 使用合适的类加载器(关键) 在J2EE中,可能无法按预期工作。使用。 你能解释一下他们的想法吗?这里“J2EE”环境的确切含义是什么?

  • 我试图在SonarQube上运行我的自定义PMD规则,但到目前为止,没有成功。 我创建了一个从sonar-pmd-plugin扩展的插件。在这个插件中,我有我的PMD规则集文件(custom_rules.xml)、一个声纳规则文件(pmd-extensions.xml)和我的自定义规则的Java类。 SonarQube识别了我的规则,我已经在默认的质量配置文件中启用了它们。最后,当我在给定的项目上

  • 我正在尝试用Java编写自定义PMD规则。我创建了一个自定义规则集,如下所示: 我调用使用这个Java类: 不幸的是,找不到我用Java编写的自定义规则;这是来自PmdStarter的消息: 找不到mwe的班级。习惯规则 这是我的(最小)自定义规则: 这是我在Eclipse中的项目结构: 我在这里读到,这种错误似乎是类路径错误。读完这篇文章后,我把放在项目中的几个目录中,希望PMD能找到它。 我的

  • 问题内容: 是否有很好的资源来描述PMD规则集背后的“为什么”?PMD的站点具有“什么”(每条规则的作用),但是并未说明PMD为何具有该规则以及为何忽略该规则会使您在现实世界中遇到麻烦。特别是,我很想知道PMD为何具有避免规则In避免(InstantInstantiatingObjectsInLoops和OnlyOneReturn)(如果需要创建一个与集合中每个对象相对应的新对象,则第一个似乎是必