コーディングにおける適切な変数命名とは
はじめに
コーディング、ひいてはソフトウェア開発におけるきわめて重要な要素として、以下の3つのステータスが挙げられます。
- 可読性:コードの読みやすさ、理解しやすさ
- 保守性:修正、変更のしやすさ
- 拡張性:新機能の追加、既存機能のアップデートのしやすさ
これらのうち、可読性と保守性を高める上で欠かせないのが適切な変数命名です。変数の命名は単なるラベル付けではなく、コードの意図を伝えるための設計そのものです。
本記事では、適切な変数命名について、実例を出しつつ解説します。
なぜ命名が重要なのか
ソースコードは「書く時間」よりも「読む時間」の方が圧倒的に長いと言われています。そのため、変数名が曖昧だったり短すぎたりすると、コードの理解に余計なコストがかかってしまいます。
例えば、以下のようなコードがあるとします。
const a = getData();
このaが何を意味しているのかは、関数の中身を追わなければ分かりません。一方で、以下のコードはどうでしょう。
const userList = getData();
この書き方なら、この一文だけで「ユーザーのリスト」が返ってくることが推測できます。この差が、可読性に大きく影響します。
変数命名のポイント
意味を明確にする
命名時は、扱うデータが「何であるか」を正確に表す必要があります。
悪い例
・data
・tmp
・list
良い例
・userProfile
・orderTotalPrice
・inactiveUserList
チームで命名規則を定める
プロジェクトで開発を行う場合、コードはプロジェクトに関わる全ての人間に共有されるため、プロジェクトごとに命名規則や用語を揃えることで、コードベース全体の一貫性が保たれます。
例えば、以下のようなルールを制定しておくと効果的です。
- booleanは
is / has / canで始める - 単位を明記する
- 適切な文字数を定める
- 用途によってスネークケース(単語を_で区切る形式)とキャメルケース(単語の先頭を大文字にする形式)を使い分ける
真偽値
boolean型の変数は、true/falseの意味が自然に読める、理解できる名前にします。
悪い例
const flag = true;
良い例
const isLoggedIn = true;
const hasPermission = false;
const canEditProfile = true;
こうすることで条件分岐も読みやすくなります。
if (isLoggedIn) {
// ログイン済みの処理
}
数値
数値は特に意味が曖昧になりやすいため、名前に単位や意味を含めることで、何を表している値かを明示します。
悪い例
const limit = 10;
const time = 3000;
良い例
const maxRetryCount = 10;
const timeoutMs = 3000;
配列
配列は複数形にして配列であることがすぐわかるようにします。
悪い例
const user = [];
良い例
const users = [];
const messages = [];
一時変数
一時的に使う変数にもしっかりとした意味を持たせます。「一時的だから」という理由で雑な命名をすると、後から読んだときに理解しづらくなります。
悪い例
const tmp = calculatePrice(items);
const result = tmp * 1.1;
良い例
const subtotalPrice = calculatePrice(items);
const totalPriceWithTax = subtotalPrice * 1.1;
戻り値
関数の役割と変数名が一致していると、コードの意図がより明確になります。
悪い例
const data = getUserProfile();
良い例
const userProfile = getUserProfile();
まとめ
変数命名は一見地味ではありますが、命名の質はコード全体の質に大きな影響を与えます。「とりあえず動くコード」ではなく「読みやすく、伝わるコード」を書くために、命名の精度を高めるのは非常に重要であるため、習慣化しておくことが望まれます。