はじめに
新人エンジニアのアナタがコードレビューで一番指摘されているのは「命名」に関することじゃなかろうか?
「この命名イケてないね」や「なんでこの命名にしたの?」なんて指摘を何往復もして、
「命名ごときでゴチャゴチャと吐かしてんじゃないッ!」って腸が煮えくり返る気持ちになっていることだろう。
でも実は、命名こそがコードの要。
仕様を忘れた未来の自分、コードを読む同僚、保守を任された後輩──
彼らが最初に頼るのが「名前」なんです。
逆に言えば、命名をミスると全員が地雷を踏む。
命名は単なる飾りじゃなくて、コードの意味や意図を伝える大事な要素。
未来の自分やチームメンバーが理解しやすい名前をつけるための考え方をまとめてみた。
❌ NG命名①:「check」は曖昧すぎる(メソッド名編)
メソッド名に「check」を使っていると、何をチェックして何を返してるのかが曖昧になりがち。
public function checkUserStatus(User $user): bool
{
// ユーザーのステータスを確認する処理
}
これ、true なら「OK」なの? 「NG」なの?
どういう条件で true なの?──読まなきゃわからん!
⭕ もっと語らせよう
状態を返すなら is
や has
を。
判定を返すなら can
や should
を使おう。
public function isUserActiveStatus(User $user): bool {}
public function canUserEditItem(User $user, Item $item): bool {}
メソッド名で意図が語られていれば、中身を開かなくても意味がつかめる。
読み手ファーストな名前づけを心がけよう。
❌ NG命名②:dataとかinfoとかlistとかつけるな(変数名編)
変数名でありがちな「data」や「info」や「list」。
一見それっぽいけど、何を表すデータなのかがまったく伝わらない。
$data = getData(); // 何のデータ?
$info = getInfo(); // どんな情報?
$list = getList(); // 何の一覧?
$array = getArray(); // 配列型であることを言われましても……
もちろん、前後のコードを読めば「これは〇〇のデータかな?」と推測はできる。
けど、それって読み手に余計な負荷をかけてるだけ。
命名は「読めばわかる」じゃなくて、「見ただけでわかる」が正義だ。
⭕ 生きた名前に変えよう(複数形も意識)
$userProfile = getUserProfile(); // ユーザーのプロフィール
$orderItems = getOrderItems(); // 注文に紐づくアイテム一覧
$availableProducts = getAvailableProducts(); // 購入可能な商品一覧
特にリストや配列を表す変数は、List
や Array
と名前につけるより、意味のある名詞+複数形で表現したほうがはるかに伝わる。
$users = getActiveUsers(); // アクティブなユーザーたち
$categories = getVisibleCategories(); // 表示対象のカテゴリたち
「複数形で書けるものは、それだけで“リストっぽさ”が伝わる」。
データ構造ではなく、意味を語る命名を心がけよう。
❌ NG命名③:「not」は読む人を混乱させる(否定形は罠)
function isNotVerified(User $user): bool {}
この命名、「not」が入った瞬間に読みにくさ爆増。
if (!isNotVerified())
みたいに二重否定になったとき、混乱はピークに。
if (!isNotVerified($user)) {
// ……え、これは verified ってこと? not verified ってこと?
}
⭕ 肯定形でストレートに伝えよう
function isVerified(User $user): bool {}
function isGuest(User $user): bool {}
function isUserSuspended(User $user): bool {}
肯定形にすれば、素直に読める。
読みやすさを最優先にしよう。
💡 命名の心得:語らない名前に未来はない
命名で迷ったときは、以下のポイントを思い出してほしい:
- 「check」は脳死。is / can / has などで意図を明確に。
- 「data」「info」「list」など中身のない単語に逃げない。
- 「not」など否定形より、肯定形でシンプルに伝えよう。
- 略語を避け、できるだけ意味のある単語で。
- 「見ただけで意味がわかる」名前をつけよう。
命名はセンスじゃない。思いやりと設計力だ。
🎓 まとめ:沈黙するコードより、しゃべるコード
命名は、コードの最前線。
そこに妥協があると、全体がボヤける。
- 命名が読みやすければ、コード全体の理解スピードが跳ね上がる
- 命名が曖昧だと、レビューも実装も地獄になる
📢 命名は甘えず、語らせろ。未来の自分を助けるのは、今の名前だ。