命名レビューでトラウマ植え付けられてそうな新人に贈る処方箋
ポエム
新人教育
新人プログラマ応援
新人エンジニア
新人プログラマ応援_記事投稿キャンペーン
最終更新日 2025年05月13日
投稿日 2025年05月13日
はじめに
新人エンジニアのアナタがコードレビューで一番指摘されているのは「命名」に関することじゃなかろうか?
「この命名イケてないね」や「なんでこの命名にしたの?」なんて指摘を何往復もして、
「命名ごときでゴチャゴチャと吐かしてんじゃないッ!」って腸が煮えくり返る気持ちになっていることだろう。
でも実は、命名こそがコードの要。
仕様を忘れた未来の自分、コードを読む同僚、保守を任された後輩──
彼らが最初に頼るのが「名前」なんです。
逆に言えば、命名をミスると全員が地雷を踏む。
命名は単なる飾りじゃなくて、コードの意味や意図を伝える大事な要素。
未来の自分やチームメンバーが理解しやすい名前をつけるための考え方をまとめてみた。
❌ 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()) みたいに二重否定になったとき、
¶ ‗ //7
.|| \M/ _//7
┌┌┐|| |!Y=Y!:| / |ミ ̄ ̄ ̄\ _
/ ̄ ̄| |几\.Y>内<∨,、_/  ̄ ̄\ //7 /| \
\/ ̄ //^ii====///\ / // |〕コ〕
Λ ̄|巨〈 ̄〈 ||巨ヨ] 〔( ̄| ̄ ̄| | //|| ̄ |
/ ̄\Λ冂V ̄ ̄//\__/ \_// //. || |
〔〔〔|X| Λ凵 | ̄|| ̄ / 〔 | | // || |
/ 厂斤〈|「刀ー||ヘ / ̄ ̄| \\ || |
/7l |〔|凵/〕/| || V| | | | | |
///_ / | | || ||_||_|/ |__ ||/| ̄ ̄|
/ / / 7\/ \/└‐|// \ C ノ / | |
_/_/ /〔彡ノ | || | | | 彡Щ | | |
∠ ̄/ / | |冖|| ノ | | | | |
| |/ / ̄ ̄// / ̄/\〔〉 || ̄|| | | |
/ / / ̄/ ̄ | ̄| /⌒ヽ V ̄ V| | | |
/ / /_/ |リ| / | γ| ̄ ̄|ヽ、 | | |
7⌒) / / | | |Λ / | | | |
/ / / / \/7/ | || || | | /_/
/ /  ̄\_/ ヽゝ \|廿 |「7 レ ̄レ
◎ 匚]二二/ ̄\ | |/
/_//\_/\ /__ V
/_/ // Λ_| 〈〔 | || | 〕〉
/,.,.,., / ̄ ̄ ̄ / ̄ ̄ 匚二二二二]
 ̄ ̄ ̄ ̄ ̄ ̄ | || 凵 || |
| V__ / |
\| 卩 卩 |/
無
ピュアちゃん