![](/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.