ソースコードの変数名規則

いつも迷う変数名

プログラマーはいつも見やすいソースコードを書くことを心がけています。

ですが、いつも迷うのが変数名の命名規則

もちろん、会社や部署、チーム、あるいは開発言語によって命名規則が決められていることが多いです。が、それでも迷う。

技術的にはいくつか種類があるので紹介します。

単語の区切り方で種類がある

  • キャメルケース 例)firstTime 単語の頭を大文字にする

  • パスカルケース 例) FirstTime キャメルケースのうち、戦闘の単語も大文字にする

  • スネークケース 例)first_time 単語の間をアンダースコアで結ぶ

変数の命名の色々

  • 先頭に変数型を示す文字を入れる 例)iCount, strMyName(整数型にはIを。文字列型はstrを付与しているのが特徴)

  • 先頭にスコープ(関数内の変数、グローバル変数、等) 例)g_iNewCount(gをグローバル変数であることを示していて、iは整数型)

他にもたくさんありますね。

私の場合は・・・

私がC++言語プログラムを書くときの変数名の付与は、(部署やプロジェクトで決められていなければ) キャメルケースで、かつ、ローカル変数の場合は「m_」を付与します。

例) int m_textCount;

「m_」はクラスのメンバ変数で、memberのmを意味しています。 これ、昔のオブジェクト志向言語ではよく使われていた記法です。古い人間なので未だにこれを守っています。

実はキャメルケースって見辛いことがあります

関数の行数が大きいようなソースコードではキャメルケースは読みづらくなることがありますね。

例えば、キャメルケースとスネークケースを比較してみましょう。スネークケースのほうが見やすくないですか? 文字が密集しているとキャメルケースやパスカルケースは読みづらいと感じることがあります。

int X1LinesOfNewArea, Y1LinesOfNewArea, Z1LinesOfNewArea; int X2LinesOfNewArea, Y2LinesOfNewArea, Z2LinesOfNewArea; int X3LinesOfNewArea, Y3LinesOfNewArea, Z3LinesOfNewArea;

int x1_lines_of_new_area, y1_lines_of_new_area, z1_lines_of_new_area; int x1_lines_of_new_area, y2_lines_of_new_area, z2_lines_of_new_area; int x1_lines_of_new_area, y3_lines_of_new_area, z3_lines_of_new_area;

結局は?

結局、どれがいいかは決まっていません。世の中のプログラムでもあまり断言はされていないと思います。 ただし、

Microsoftが推奨している形式やGNUソフトウェアでよくかかれる形式があるので、 開発環境に即して合わせてみると、コードを読んだお客様や友人に「あ、こいつ、ちゃんとMicrosoft(あるいはLinux)の規則を守って書いているな!」と思ってもらえるはずです。 汚いと思ったコードをよく見ると変数名の命名規則がメッチャクチャなことが多いのです。