Javaで覚える!at や is などの定型語で始める命名規則の考え方と使い分け
こんにちは。ゆうせいです。
新人エンジニアの皆さん、変数やメソッドの名前をどう付けたらいいか、迷ったことはありませんか?
「どんな名前が正しいんだろう…」
「命名に時間がかかってしまう…」
そんな悩みに応えてくれるのが、定型語(プレフィックス)を使った命名のルールです。
今回は at、is、has などの「意味を持った英単語から始める命名」について、Javaの実例とともにわかりやすく説明していきます。
なぜ定型語を使うのか?
命名はプログラミングの中でも最も重要な設計行為です。
読みやすく、誤解のない名前をつけることで、コードの意図が伝わりやすくなります。定型語を使うことには以下のようなメリットがあります。
メリット
- 役割がすぐに分かる
- 保守性が高くなる
- チームで統一されたスタイルを保てる
よく使われる定型語とその使い方
では、さっそく具体例を見ていきましょう!
① is:真偽値(boolean)を返す「状態」の判定
ルール
- 戻り値が
booleanのメソッドや変数に使う - 「〜か?」という問いを表す
Javaの例
public boolean isAvailable() {
return stock > 0;
}
意味
「利用可能か?」を判定するメソッド
よくある使い方
isEmpty()isEnabled()isLoggedIn()
② has:所有や条件の「有無」を判定する
ルール
- boolean型の戻り値で、「何かを持っているか?」を表す
Javaの例
public boolean hasPermission(String role) {
return userRoles.contains(role);
}
意味
「指定された権限を持っているか?」
よくある使い方
hasNext()(Iterator)hasErrors()hasAccess()
③ at:場所や時間を示すコンテキスト付きの状態
ルール
- 変数名・プロパティ名に使う
- "〜の時点で"や"〜の場所で" という意味
Javaの例
private LocalDateTime createdAt;
private String errorAtLine;
意味
「作成された時刻」「エラーが起きた行」
よくある使い方
updatedAtstartedAtstoppedAt
時刻や履歴に関連する情報で多用されます。
④ get / set:値の取得・設定(アクセサメソッド)
JavaBeans規約に沿った命名
public String getUserName() {
return this.userName;
}
public void setUserName(String name) {
this.userName = name;
}
この形式を使うことで、Javaのライブラリやツール(例:Jackson, Spring)での自動処理にも対応できます。
⑤ can:能力や許可を表す(boolean)
Javaの例
public boolean canExecute(String action) {
return permissions.contains(action);
}
よくある使い方
canDelete()canEdit()canAccess()
命名規則早見表(Java向け)
| プレフィックス | 戻り値の型 | 意味のニュアンス | 使用例 |
|---|---|---|---|
is | boolean | 状態の確認 | isVisible() |
has | boolean | 所有・条件の有無 | hasChildren() |
at | オブジェクト | 時刻・場所・履歴の情報 | createdAt, atLine42 |
get | 任意 | 値の取得 | getId() |
set | void | 値の設定 | setEmail(String) |
can | boolean | 能力・許可の有無 | canWrite() |
命名ミスのNG例
boolean login; // 何を意味しているか不明
↓ 改善案
boolean isLoggedIn;
実際の命名で注意したいこと
● ルールを統一しよう
→ プロジェクト内で isXxx() か hasXxx() かを曖昧に使い分けない
● 名前だけで意図が通じるか確認しよう
→ 「この名前を見て、他人が意味を想像できるか?」
● プレフィックスに甘えない
→ 「isValid()」より「何がvalidなのか?」を具体的に書くとより良い
(例:isEmailValid())
今後の学習の指針
- JavaBeansの命名規則を一度読んでみましょう(公式JavaBeans仕様)
LombokやSpringなどのライブラリがどう命名を扱っているか観察してみよう- チームで命名規則ガイドラインを作る経験をしてみよう
- 英語の意味やニュアンスも同時に学べると、より洗練された名前が付けられるようになります
命名は「コードを書くこと」そのもの以上に、他人と協力する力につながります。
最初は難しくても、定型語のパターンを覚えるだけでグッと楽になりますよ。
もっと詳しい命名ルールやチームでのスタイルガイドの作り方が知りたければ、いつでも聞いてください!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年10月27日重回帰分析はディープラーニングの「細胞」だった?"ご先祖様"と"最強の進化系"のつながりを徹底解剖
山崎講師2025年10月27日機械学習の"ご先祖様"?重回帰分析が今も最強の「基礎」である理由
山崎講師2025年10月27日ディープラーニングの「常識」を疑え!相関分析が“無力”に見える理由と、それでも使うべき本当の価値
山崎講師2025年10月27日相関分析は最強の「データスカウト」!機械学習の精度を上げる”相棒”の正体とは