簡體   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