boolean 型の変数名をどう付けるか? — 可読性を高める命名規則まとめ
目次
はじめに
プログラミングにおいて、boolean 型(真偽値型、真/偽を表す型)の変数名は、しばしば議論の対象になります。
true/false の意味が直感的に理解できる名前をつけることで、コードの可読性や保守性がぐっと向上します。
ここでは、boolean 型変数名の命名ルール・ベストプラクティスを整理し、良い例・悪い例を交えて紹介します。
命名の基本原則
boolean 型の変数名を考えるときは、以下のような考え方を意識するとよいでしょう。
- 変数名を見ただけで、
true/falseの意味がすぐに分かるようにする - 「〜かどうか?」という疑問形を意識する名前にする
- 否定形(
not、no、neverなどを含む名前)はできるだけ避ける - 命名スタイル(キャメルケース、スネークケースなど)はプロジェクトで統一する
以下で具体的な接頭辞・パターンと、それにまつわる注意点を見ていきます。
接頭辞・命名パターン例
一般に使われるパターンとして、以下のようなものがあります。
| 接頭辞・形 | 意味 | 例 |
|---|---|---|
is + 名詞 / 形容詞 / 現在分詞 |
「〜であるか?」 |
isActive、isVisible、isPending
|
has + 名詞 |
「〜を持っているか?」 |
hasPermission、hasVideo
|
| コントロール系の助動詞 + 動詞の原形 | 「〜できるか」「〜すべきか」 |
canEdit、shouldDisplay
|
| 動詞の三人称単数形 | 「〜するかどうか」 |
supportsVideo、includesItem
|
例えば:
isActive // アクティブかどうか
isGameOver // ゲームが終了したかどうか
hasPermission // 権限があるかどうか
canEdit // 編集できるかどうか
shouldDisplay // 表示すべきかどうか
これらを使うことで、true/false の意味が明快になります。
悪い例 & なぜ避けるか
次のような名前は、意味が曖昧になりがちなので注意が必要です:
activeFlag
gameOverStatus
permissionValue
editMode
displayOption
なぜこれらが悪いかというと:
-
activeFlag:booleanかどうか不明 -
gameOverStatus:statusが何を示すのか不明 -
permissionValue:値なのか真偽なのか不明 -
editMode:モードかbooleanか曖昧 -
displayOption:表示のオプションか真偽か不明
こうした曖昧な名前は、コードを読む際に意味を推測せねばならず、可読性が下がります。
より良い命名のための注意点・ベストプラクティス
1. 否定形を避ける
!isNotFound のように二重否定を生み出すリスクがあるため、名前に not/no を入れるのは控える方がよいでしょう。
例:hasNoValues より hasValues、否定は !hasValues に。
2. ポジティブな名前を使う
肯定形(positive)で命名することで混乱が減ります。
例:isEnabled の方が isDisabled より分かりやすい。
3. デフォルト値を false で扱える設計にする
boolean 型フラグは、未指定時に false となるような命名設計を心がけると安全性が高まります。
4. プロジェクト内で命名規則を統一する
接頭辞、動詞の使い方、語順などを揃えておくことで、コード全体の理解性が向上します。
5. 英語文法・語感にも配慮する
慣習に即して不自然な接頭辞の使用を避けましょう(例:isExist より exists)。
実践例:変数名改善前後
| 用途 | 悪い名前 | 改善後 |
|---|---|---|
| ユーザがログインしているか | userStatus |
isUserLoggedIn |
| ファイルに書き込み可能か | fileWritable |
isWritable または canWrite
|
| リストに要素があるか | listFlag |
hasElements |
| メッセージ表示すべきか | showFlag |
shouldShowMessage |
| 全ユーザがアクティブか | allActive |
areAllUsersActive または isEveryUserActive
|
これらの改善により、コードを読む人は “true のとき/false のとき” を即座に想像できるようになります。
まとめ
-
boolean型変数名は、「〜かどうか」が明快に伝わる疑問形命名がベストです。 -
is、has、can、shouldなどを接頭辞とするスタイルは非常に有効です。 - 否定形や曖昧な命名は避け、読み手に過度な推測をさせないようにしましょう。
- プロジェクト内で命名ルールを統一することも大切です。