本記事では、以下のお悩みについて解説いたします。

プログラミングで、変数名・関数名の付け方についてのルールってなんだろう?
プログラミングで、変数名・関数名にルールをつける目的
プログラミングで、変数名・関数名にルールをつける目的とはなんでしょうか?
色々あると思いますが、筆者は、以下だと考えます。
- 個人開発の場合
- 後からコードを読んだときに理解しやすくするため
- チーム開発の場合
- チームメンバーどおし、コードを読みやすくするため
- コードで誤解を生まないため
- 引き継ぎがある場合に、スムーズに移行できるようにするため
- エラーなどがあった場合に素早く対応できるよう設計粒度を統一するため

ルールをつける目的に関しては、人それぞれ色々の考えがあると思います。どれが正解でどれが不正解で・・・ということは決してないと思います。
本記事では、以上の目的に沿ったコーディングルールについてまとめてみたいと思います。
ルール1:より短い時間で理解できる方を選ぶこと

他人のコードを読んでいて、同じことを理解するならば、より短い時間で理解できた方がいいですよね?
そのため、品質上の問題がない二つのコーディング方法がある場合は、コーディング量が少ない方法を採用するというのが基本だと思います。その方がテストであったり、設計工数を減らせることが多い方です。
しかし、コーディング量を少なくしすぎるがために、「他人が読んだときの理解の時間が長くなる」のであれば、必ずしもコーディング量が少ない方が最適だとは言えないです。
ルール2:変数名を明確にすること

例えば、以下のような変数があるとします。
a = 30
このコードだけを読んでもこの変数が何を表すのかが理解できないと思います。
では一方で以下はどうでしょうか?
age = 30
この変数は年齢を表すのかな?と推定することができます。
このように変数名は、必ず具体性のある名前を用いることが基本です。
より具体的に変数名を定義するのが基本
どちらの方がより具体的でしょうか?
- id
- user_id
より具体的な方はuser_idだと思います。個人的には、user_idまで書いてくださるとありがたいですが、そもそもidが一つしかない場合は、idだけで良いケースもあるかと思います。
あまりにも長い変数名は、可読性を下げる可能性があるので注意しましょう。
例
- female_id_of_special_customers
せめてアンダースコア3つ程度に抑えるのが良いかもしれません。
ここら辺はチームで開発するときにルールとして、上限値を設けるのはありだと思います。
変数名に単位を入れる
変数名に単位を入れるとより読みやすいコードとなります。例えば以下です。
- time = 100
- time_ms = 100
どちらが分かりやすいですか?
time = 100だと100秒なのか、100ミリ秒なのか・・・わからないですよね。
変数名に単位が入っていた方が、分かりやすいケースは多いので、これはぜひ参考にしてみてください。
ルール3:キャメルケースとアンダースコアを使い分ける


キャメルケースってなんだ?
こんな疑問があると思いますので、解説します。

キャメルケースとは、以下のような記述方法です。
- openCsv
例えばこれを、アンダースコアを使って記述すると
- open_csv
キャメルケースは、大文字小文字を使って凸凹とした文字列となるので、キャメルケースと呼ばれます。
ではキャメルケースとアンダースコアはどのように使い分けるのか?
- 変数名:アンダースコア
- 関数名:キャメルケース
このように使い分けると、コードを見ただけで変数なのか関数なのかをすぐに分類することができます。
そのため、チームでのコーディングの際にあらかじめルールを設けておくと他人が読みやすいコードとなって、チームでの開発が効率的になります。
まとめ
変数名・関数名の付け方についてのルール例を3つ解説いたしました。
- ルール1:より短い時間で理解できる方を選ぶこと
- ルール2:変数名を明確にすること
- ルール3:キャメルケースとアンダースコアを使い分ける
可読性の高いコードの書き方についてもっと学んでみたいという方は、以下の本をおすすめします。プログラミングを生業としている方は必読書といっても過言ではありません。
チームで開発をされる方は特に読んでみるとよいと思います。
今回の記事は、以上です。
最後までお読みいただきありがとうございました。




コメント