汎用的な名前を避ける
汎用的な名前を避けるとはどういうことでしょうか。
プログラミング言語の教科書を読んでいるとよく変数名に「foo」や「hoge」などの名前が付けられていることがあります。
そもそもこれらの変数名は一体何なのでしょうか。Wikipediaで調べてみるとメタ構文変数というキーワードが出てきており、
メタ構文変数(メタこうぶんへんすう、metasyntactic variable)はプログラミング言語の記述で使われる識別子の一種。サンプルプログラムなどで意味のない名前が必要な場合に利用される、「意味のない名前」であることが広く知られた識別子のことである。
と書かれています。
つまり、これらの名前は何の意味も持っていないのです。
コードの中にメタ構文変数を書き入れることは読み手にとってはわかりづらくなってしまうので避けたほうが良いでしょう。
その他の汎用的な名前
上記では汎用的な名前の例として「foo」や「hoge」を挙げていましたが、その他には関数の戻り値として「retval」という名前を付けることがあると思います。
文字通り、戻り値を意味する変数名になるのですが、戻り値にも意味があります。例えば、Webサプリケーションでユーザから入力された値をチェックする関数を作っていた場合、その関数の戻り値を「retval」にしてしまうと読み手としてはこの変数は入力チェックされているのか、いないのか、どんなチェックをしたのかが直感的にわかりづらくなり、コードを理解するのに時間がかかってしまう可能性があります。
汎用的な名前は非常に便利なのですが、コードが読みにくくなる可能性があるのでできる限り避けましょう。
ただし、汎用的な名前以上の意味をなさない場合や変数のスコープが短く、スコープ内では汎用的な名前で意味がわかる場合は汎用的な名前でも問題ないです。
次回は抽象的名前ではなく、具体的な名前を使用するについて学習していきます。