変数の名前付けについての考察

こんばんわ、変数の名前について書かせていただく雄一です。 今回もCとか関係ないんですが、変数名に「a」「i」「j」「k」とかって書く奴がいるけど、まったく・・・馬鹿じゃない?ってところから話は始まります。

ただ動けばいいというものではない

実際プロでもこんな人いっぱいいますよね。 でも大間違いだということは明確ですよね。 あなたの書いたプログラムはほかの人も見ます。 そもそも、未来の自分は違う人だと思えを教訓にするならば自分のためにもわかりやすい変数名をつけるべきです。

「a」だの「b」だの、「i」「k」「j」「l」「tmp」「temp」だのを使う人いますよね。 こんな名前をつけていれば後でみて、わかりにくいに決まってます。

そもそもの始まりとして、プログラムの参考書みると結構こうやってかいてありますよね。 こんな参考書買うなとしかいえません。 その参考書にかいてあるプログラムって読みやすかったですか? プログラムの保守のため、また、他人にバグを発見してもらうためにも、わかりやすい名前を付けましょう。

では、どうするか?

1.ローマ字やめろっつーのてことです。
なぜかというと、意味と読みは一致しても、スペルが一致しないことがあります。
表示文字列用に変数を用意したときに、変数名が「mojiretu」なのか「mojiretsu」なのかわからないとか。

2.とりあえず、英語の辞書をつかってでもしっかり名前を決めやがれ!ということです。

3.この変数って、型なんだっけ?のために、名前に型をあらわすものを入れたりしたらどうですか?
たとえば、変数名の先頭にpをつけると、ポインタ型とするなどです。 このpのように、名前の先頭に決まった文字を追加してあげるとよいですね。 このpのようなものをprefixといいます。
ポインタのポインタなんかはppとかにすると、実際にその内容をみたいときにはpの数だけ*をつければいいですよね

4.この変数って内部変数?外部変数?ってのがわかるようなprefixもあれば便利ですね。 たとえばよく使われるもので、外部変数には「g_」をつけ、クラスのメンバ変数には「m_」をつける。などです。

まとめ

とりあえず未来の自分は他人です。という原則を守ってください。

腐った変数名があるとアルゴリズムも腐る。