web-dev-qa-db-ja.com

"ByXXX"サフィックス(例:findUserById)を持つメソッドは冗長ですか?

時々私は次のようなメソッド定義を見ることができます:

public User findUserById(int id){
}

しかし、私の正当化は、「(int id)」にはすでに「ById」の情報が含まれていないのではないですか?

次のように名前を付ける方が良いですか?

public User findUser(int id){
}

すでに存在する情報を繰り返す「ById」を持つ代わりに?

6
ocomfd

何かを見つける方法の数、チームのコーディング基準などに本当に依存します。識別子による検出と、投稿の数またはUser

私の個人的な好みは、動詞getfindによる単純な検索と検索を区別することです。例えば:

_public User getUser(int id) { }
public User getUserByUsername(String username) { }

public Enumerable<User> findUsersForRole(Role role) { }
_

しかし、それは個人的な好みです。 ByXXXサフィックスはコンテキストを提供しますあなたがコードを読んだとき。変数名の名前が必ずしも適切でない場合や、渡された値がハードコードされている場合に非常に役立ちます。

個人的な好みよりも重要なことは、命名規則は、コードを保守する必要があるチームにとって意味があるということです。私の例では、ユーザーを取得する主要な手段として、単純なgetUser(int id)メソッドを使用しています。とは言っても、ByXXXサフィックスを使用する規則をすでに持っているソフトウェアを保守している場合、私は適応します。それが慣習であるなら、私はすべてのためにfindByXXXを使うことに適応します。

10
Berin Loritsch