繁体   English   中英

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

[英]Why java method name should not contain underscore?

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

public void testCaseMethod_4_2_16(){
   //some implementation 
}

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

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

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

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

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

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

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

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

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

Java更喜欢camelCase表示法。 Java代码约定表明,只要可能,您应该尽量避免使用方法或变量名中的下划线。

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

我建议你使用SonarQube ,它重新确定了PMD规则的优先级,大多数情况下效果更好。 您找到的规则仅在主要级别(低于Blocker和Critical级别)。

声纳中的命名约定规则

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

虽然有很多意见,但我喜欢将生产质量保证与测试代码质量保证分开。

如果由于某种原因无法做到这一点,我宁愿停用(大部分)测试代码的警告。 我认为不值得花时间使测试代码漂亮(并且方法名称中的下划线对我来说只是造型),而生产代码仍有严重警告。

在命名标识符时,允许使用java下划线。 我不知道为什么PMD显示违规,但您可以停用警告并继续。 在命名标识符时允许在java中使用UNDERSCORE。

我想它可以帮到你......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM