プログラミングでは「変数」を多用して、複雑なプログラムを組み上げていきます。ですのでアプリケーションの規模が大きくなればなるほど、たくさんの変数を考えていく必要があるのです。「どの値がどの意味だっけ」といったことが日常茶飯事になるのです。
そんなときに作業を手助けしてくてるのが「変数名」です。変数に名前を付けて判別することを「変数名」と呼んできました。良質なコードを書くために必要な「変数の命名に関するヒント」について書きたいと思います。変数名が良くなると、グッとコードが読みやすくなるので、そのためのヒントを書いていきます。
C#の変数基本ルール
まずは変数名を付けるときのプログラミング作法的なお話からしていきます。プログラミングで変数を付けるときは、一定のルール・形式に乗っ取って名称を付けることがほとんどになります。
このルールはプログラミング言語によって若干の違いはあるものの、以下の記述ルールに則ることがほとんどです。変数名の形式には以下の3種類が挙げられます。
- CamelCase
- PascalCase
- SnakeCase
この3つの表記ルールを使うことがほとんどです。覚えておきましょう。
CamelCase
CamelCaseの特徴は以下のような感じです。
- 最初の単語はすべて小文字
- それ以降の単語は頭のみ大文字
- 頭以外は小文字
例えば「canConvert」などが挙げられます。これまで当連載で宣言してきた変数は、だいたい、このCamelCaseを使用したものになっています。
PascalCase
PascalCaseもよく使用される変数名のルールになります。特徴は以下のような感じです。
- 単語の頭は大文字、頭以外は小文字
複数の単語が連なっていても、単語の頭を大文字にするのが決まりになります。CamelCasedでは「canConvert」でしたが、PasalCaseでは「CanConvert」となります。
SnakeCase
SnakeCaseも時々使われています。蛇のように変数名を記述します。
- すべての単語は大文字
- 単語と単語の間にアンダースコアを挿入
例えば「CAN_CONVERT」のように、単語をすべて大文字としアンダースコアでつなぎます。形状が蛇のようになっているので、Snakeと命名されているのですね。
3種類の命名ルールを紹介しました。C#ではどのルールも使用しますが、CamelCaseとPascalCaseが多いかなという印象です。また、当連載ではCamelCaseを使用することを中心とします。中級編・オブジェクト指向言語編でPascalCaseも扱います。
変数名を付けるときのヒント
では変数名を付けるときのヒントを書いていきたいと思います。まず大前提としては「英語」で変数名を付けます。
時々、日本語名をヘボン式にしている変数名も見かけますが、これもできるだけ避けたほうがよく、英単語名が難しすぎる場合に限るようにしましょう。また、変数名は「動詞」を先頭にすると意味が通じやすくなる気がします。
- canConvert
- convertedInput
- convertStringToNum
- isSameValue
などなど。動詞を先に付けることで、その変数がどんな値なのかを理解しやすくなります。そのあとに目的語などを追加することで、処理の所作がわかりやすくなるのです。状態を表す場合は「Is」や「Can」を使うとカッコよくなりますね。
int convertedNum;
bool isConverted = int.TryParse(input, out convertedNum);
if(isConverted == true)
{
//処理は省略...
}
また、単語を省略しすぎるのは伝わらないので注意が必要です。例えば「value」なので「v」としたり、使用したい単語の頭文字だけとってくるなどは読む側が大変になります。今後に倣う繰り返し文などでは「i」などが使用されますが、これらはお決り的な部分がありますので例外かなと思います。
エンジニアとして働きたい、という夢を持っている人は「変数名」にもこだわる必要があります。変数名をみたときに「どんな値を格納してるのか」がわかるとベストです。いきなりは難しいと思いますので、あなた自身で考えながら変数に名前を命名してみてください。