TIPSこんにちは、徳田です。皆さんは「変数名」はどのように付けていますか?ソースコードには、無数の変数が使用されますが、プログラマーはその全てに名前を付けなければなりません。これを「変数に命名する」と言います。今回は、変数の命名方法について、実際にプロの現場ではどのような事に注意して行っているのかということを説明しようと思います。変数とは何かが分からない方は、変数について説明している記事がありますので、そちらをご覧ください。・現場のノウハウ・まとめ結論から言うと誰が見ても「その変数に何が入っているのか」が分かりやすい名前を付ける。長くせず簡潔に分かりやすく。($のすぐ後に数字は使用出来ません)スペースや、アンダーバー以外の記号を含めることは出来ません。大文字と小文字は区別されますので、「$mail_address」と「$Mail_address」は別の変数となります。これらの命名規則に反すると実行時にエラーとなります。命名規則ではありませんが、一般的に複数単語になる場合は単語と単語の間をアンダーバーで区切るか(例:$mail_address)、2語目以降の先頭文字を大文字にします。(例:$mailAddress)この辺りは混在すると見づらくなってしまうので、自分の中でどちらかにルールを決めておくのが良いでしょう。変数名を全部大文字にすることも出来るのですが、「特別な意味を持つ変数」を全て大文字で表現することがあるので、それと区別するために全部大文字にするのは避けましょう。ちなみに僕は、全部小文字&単語間はアンダーバーで統一しています。良い変数名の付け方ですが、その変数に「どんなデータが入っているのか」を、前後の処理を追わなくても、ある程度想像出来る名前がベストです。上記の「$mail_address」という名前であれば、後からソースコードを読んだ時に「ああ、この変数にはメールアドレスが入っているんだな」と想像することが出来ますよね。誰にでも完全に内容の分かる命名というのは難しいですが、極力このように分かりやすい名前をつけるようにしましょう。逆に、最もダメなのは「$hensuu1」「$data」「$num」「$var」といった命名です。入門書でもこういった変数名はよく見ますがこれは駄目です。面倒になるとついやってしまいがちですが、こういった名前だと変数がどのような用途なのか全く想像出来ません。変数名に困ると英語辞書などで単語を調べることもあると思いますが、後から自分で見て理解出来ないような難しい単語を選ぶのもNGです。「経費」を保持する変数に「$expenditure」と付けても、大体の人はパッと見で分からないですよね。「$cost」といったもっと簡単な単語をチョイスするか、あまりカッコ良くはないですが、分かりやすければ「$keihi」といったローマ字表記でも良いかと思います。$taro:誰かの名前?現場のノウハウここで1つ現場のノウハウを。DBのテーブルから取得したデータオブジェクトには、テーブル名をそのまま付けたり、各項目のデータはカラム名と全く同じにしておくと一目瞭然で分かりやすくなります。DBの「member_nickname」というカラムに保存するデータを扱う変数には「$member_nickname」とそのまま付けます。カラム名と一致させずに「$name」といった変数名を付けている人を良く見ますが、ここは一致させておいた方が良いです。ソースコードを見たときに、この「$member_nickname」という変数は、DBの「member_nickname」のデータを扱っていると予想出来ますし、スペルが一致していることでチェックもしやすくなり、結果的にスペルミスなどのバグも少なくなります。この方法はとてもおすすめなので、是非自分のルールに取り入れてみてください。まとめ変数名は、後から誰が見ても「どんなデータが入っているのか」が分かりやすく簡潔に。プログラム的には、変数名にどのような名前をつけても同じように動くので、入門書などではあまり触れられることがありません。これがバグの軽減やプログラム修正コストの削減にもつながるので、実際の現場ではとても大切なことなんです。ソースコードは一度書いたら終わりではなく、後から何度も修正されるもの。ソースコードを書くときは常に誰かに見られる前提で書くことが大切です。この記事を読んだ人はこんな記事も読んでいます。啓Webプログラマー暦20年、2児の父。IT企業でWebプログラマーを13年ほどやっており、在職時は新人プログラマーの採用や育成なども担当。現在はその経験を活かして独立。パソコン1台で好きな場所で働くノマドワークを実践しています。