![](/img/trans.png)
[英]Java: why class designed for inheritance should contain protected clone method?
[英]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规则的任何帮助将不胜感激。 谢谢
它是一个已设置的标准,以便人们可以轻松阅读彼此的代码,从而使代码更易于维护。
以下引用来自Oracle的Java代码约定网站:
一个软件的80%的终身成本用于维护。
原作者几乎没有任何软件可以维护。
代码约定提高了软件的可读性,使工程师能够更快,更彻底地理解新代码。
Java更喜欢camelCase表示法。 Java代码约定表明,只要可能,您应该尽量避免使用方法或变量名中的下划线。
在您的情况下,PMD的默认优先级失败。 这个规则应该处于“很好的”水平,但绝对不是阻碍问题。
我建议你使用SonarQube ,它重新确定了PMD规则的优先级,大多数情况下效果更好。 您找到的规则仅在主要级别(低于Blocker和Critical级别)。
如果您对结果仍然不满意,可以使用SonarQube的SourceMeter插件 ,它也有不同的(可能更好的)PMD规则优先级。
虽然有很多意见,但我喜欢将生产质量保证与测试代码质量保证分开。
如果由于某种原因无法做到这一点,我宁愿停用(大部分)测试代码的警告。 我认为不值得花时间使测试代码漂亮(并且方法名称中的下划线对我来说只是造型),而生产代码仍有严重警告。
在命名标识符时,允许使用java下划线。 我不知道为什么PMD显示违规,但您可以停用警告并继续。 在命名标识符时允许在java中使用UNDERSCORE。
我想它可以帮到你......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.