202
163

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

booleanメソッドの命名規則

Last updated at Posted at 2019-02-20

#booleanメソッドの命名規則

#まとめ
・使えるパターン -> is + 形容詞, has + 過去分詞, 三単現動詞 + 名詞, 助動詞 + 動詞
・アンチパターン -> YesとNoが明確でない命名
・主語を記載したいときは例外的に主語+三単現動詞

##命名規則一覧

###is + 形容詞
形容詞の状態であるかを尋ねる
ex) isEnabled

###has + 過去分詞
動詞の状態となったかを尋ねる
ex) hasSent

###3単現動詞 + 名詞
動詞の状態に名詞があるかを尋ねる
名詞が明確な場合は、省略できる
ex) hasError

###助動詞 + 動詞
可能かどうかや、するべきかどうかを尋ねる
ex) canRemoveItems
ex) shouldContinue

2019年2月21日追記
助動詞はあり?なし?というコメントをいただきました。助動詞を使用するbooleanも良く見ますし、動詞で始めるという一般的ルールにも当てはまるのでありだと自分は思います。
そのため追記しました。

##よくある間違い

YesとNoが不明確

ex) checkValid

###文法的ミス(命名規則に沿っていない)
ex) isEnable, existError
→ 正しくは isEnabled, existsError

##主語を記載したいとき
例えばユーザーが存在するかということをbooleanで表現しようとすると表現として以下のようなものをGitLabで見つけた。

public boolean userExists

public boolean isUserExists

public boolean existsUser

自分は1つ目のパターンが一番好みだ。
英文で表そうとすると
If user exists,... だからだ。
原則動詞から始めるというルールがあるので2つ目や3つ目のパターンがあるのだろうが、英語の文法としてはおかしいように見えるのであまり使わない。

stackOverflowでも主語をもつ場合の命名規則についての議論があった。
https://stackoverflow.com/questions/1566745/boolean-method-naming-readability

これをみてもuserExistsが一番多いように見える。

またuserというobjectを持っているのならuser.exists()と書くべきだ。

202
163
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
202
163

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?