ルルのゲーム開発備忘録

主にUnityやC#に関する情報を気まぐれに投稿していきま~す

【プログラミング】識別子(変数)の命名が重要な理由

はじめに

最近「プログラマー脳」*1という書籍を購入して読み進めているのですが、その中で識別子の命名がなぜ重要かについて語られていたので軽く紹介します。
(変数の名前つけるのって結構悩みますよね...Netscapeプログラマーのフィル・カールトンさんの言葉に、

コンピュータサイエンスには難しい問題が2つしかない。それは、キャッシュの無効化と命名である」

というものがあるそうです。)

識別子の名前が重要であると考えられる主な4つの理由

以下は、「プログラマー脳」のChapter8 「よりより命名を行う方法」の記載内容を要約したものとなります。

1. 名前はコードの大部分を占める

世の中に存在するコードのうち、大部分は名前が占めるから。例えば、Eclipseソースコードは約200万行あり、文字にした場合、そのうちの72%は識別子が占める。

2. コードレビューの大半は命名に関する指摘だから

プログラマーはよく名前について議論します。マイクロソフトリサーチの研究者が、170以上のコードレビューについて調査したところ、4件のうち1件が命名に関する指摘であった。

3. 名前は最もアクセスしやすいドキュメントだから

プログラムを読むときは、できるだけ外部のドキュメントを見にいくのは避けたい。(時間や負荷がかかるから)そのため、コードの内部の変数名がドキュメントのかわりの役割を担ってくれるようなわかりやすい名前であることが望ましい。

4. 名前はビーコンとして機能するから

変数名を呼んだだけでプログラムの処理を想像することができるようになるから。例えば、「sum」という名前なら何かの合計を表していることがわかったり、「Init」なら何かしら初期化処理をしているなど、内部の処理を実際に見なくても予想ができるようになり、プログラムを読む目印(ビーコン)となる。