わたしが一文字変数を嫌う理由
GUI が一般ユーザへのユーザインターフェイスなら、ソースコードはプログラマに「何をやっているのか」を教えるためのユーザインターフェイスといえる。
いいユーザインターフェイスがどういうものか、ということについては Don't Make Me Think! に書かれているけど、その表題が示すとおりだ。
「さて、これは何をやっているんだろうな」とか「この変数には何が入っているんだろうな」って思われるようじゃダメなんだ。ここで考えてみてほしいんだけど、一文字変数とか一文字関数を Glance View しただけでそれらが何をやっているのか、何を保持しているのかわかるだろうか?
ReturnNotNone = lambda a, b: a or b 程度なら、関数の名前とあわせて None ではないほうの値を返すんだなと想像できると思う。でも、10行100行それ以上にわたって使われていたら?関数名まで一文字名だったら?きっと厄介な問題になるだろう。
書いた本人はいいかもしれない ( きっとあとで苦労するだろう ) けど、共同作業しているプログラマは頭を悩ませてしまう。悩んでいる間に1日2日と時間が過ぎていく。わかりやすい名前がつけてあればこんな無駄な時間は過ごさなくてすむはずなのに。
「さてこれは何をやっているんだろう?」と頭を悩ませるケースと、Glance View だけで理解してすぐにその先に取り掛かれるケース。どっちが生産的だと思う?
既に解決したはずの問題に頭を悩ませるか、未解決で誰も挑戦していない問題に取り組むか。どっちがエキサイティング?
ちょっと考えれば一文字名は使わないほうがいい事に気付くはずだ。
| 固定リンク
この記事へのコメントは終了しました。
コメント