为什么java方法名称不应包含下划线?

San*_*jay 3 java pmd

我正在使用PMD来检查java编码违规.我正在编写自动化测试用例,并给出如下方法名称:

public void testCaseMethod_4_2_16(){
   //some implementation 
}
Run Code Online (Sandbox Code Playgroud)

其中4_2_16是测试用例编号4.2.16

当我检查PMD违规时,它显示的方法名称不应包含下划线,并且根据PMD规则,此违规将显示为阻止程序.所以这是我的问题:

  • 为什么方法名称不应包含下划线被定义为阻止程序PMD错误
  • 我们应该避免什么样的PMD违规
  • 我们应该尝试修复哪种违规行为?

至于我的理解,至少我们应该避免PMD显示的前两级违规.有关PMD规则的任何帮助将不胜感激.谢谢

Jea*_*aka 7

它是一个已设置的标准,以便人们可以轻松阅读彼此的代码,从而使代码更易于维护.

以下引用来自Oracle的Java代码约定网站:

  • 一个软件的80%的终身成本用于维护.

  • 原作者几乎没有任何软件可以维护.

  • 代码约定提高了软件的可读性,使工程师能够更快,更彻底地理解新代码.

  • +1 为 80% 的生命周期成本。这是人们对软件所说的最聪明的事情之一 (3认同)

Csu*_*uki 5

Java 更喜欢驼峰命名法。Java 代码约定表明,您应该尽可能避免在方法或变量名称中使用下划线。

在您的情况下,PMD 的默认优先级排序失败。这条规则应该处于“可有可无”的水平,但绝对不是一个阻碍问题。

我建议您使用SonarQube,它对 PMD 规则进行了重新优先级排序,在大多数情况下效果更好。您找到的规则仅位于主要级别(低于“阻止者”和“严重”级别)。

Sonar 中的命名约定

如果您对结果仍然不满意,您可以使用SonarQube 的 SourceMeter 插件,它也具有不同(可能更好)的 PMD 规则优先级。