[英]What is good naming convention for validating method?
假設有一個驗證用戶輸入的方法。 此方法檢查列表中是否有任何重復,如果存在,則拋出某種異常。
在這種情況下,該方法的正確命名是什么?
由於英語不是我的母語,我對此並不熟悉。 如果您能解釋一下原因,我將不勝感激。
我還沒有看到任何關於此的約定。
我建議用肯定的措辭,說明有效的情況。 專注於你想看到的,而不是你想避免的。 一致地使用正邏輯使代碼更易於閱讀和理解,而無需在腦海中翻轉 Boolean 邏輯。
例如......如果您希望您的列表沒有重復,這意味着該列表具有獨特的項目,通常也稱為distinct 。 所以 state 的有效案例作為您的驗證方法的名稱: isDistinct
。
boolean isDistinct( List< LocalDate > dates ) {
return ( Set.copyOf( dates ).size() == dates.size() ) ;
}
根據JavaBeans約定,前導is…
表示 object 的屬性的訪問器方法(getter)。 如果在您的上下文中這可能會讓人感到困惑,請選擇其他名稱,例如datesListIsDistinct
。
順便說一句,對於復雜的數據驗證,您可能會發現有用的Jakarta Bean Validation 。 另見規格頁面。
從技術上講,從約定的角度來看,您提到的所有方法都是正確的。 但是命名約定是一個主觀的話題,可能因團隊而異。 最后,它是關於作為一個團隊聽起來對所有人來說更直觀的東西。
話雖如此,從給定的選項來看,nonDuplicate 版本對我來說聽起來比其他版本好一些,但我想將其改寫為validateNonDuplication
。 它聽起來比其他人更好的原因是因為您的積極流程是確保沒有重復,如果有重復則拋出異常。 因此,期望更符合不重復的要求。
因此,在我看來,在這種情況下,我會選擇validateNonDuplication
。
根據 Oracle Oracle 命名標准:
如您所見,除了需要描述性之外,它沒有指定任何其他內容。 在您的情況下,您的示例可以更具描述性。 如果您使用驗證列表,可能會將其放入。如果它檢查 object 中的字段,請指定它。 例如 validateIdListDuplicate。
這是一個主觀的話題,所以沒有正確的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.