2006/04/07
スコープ
最近は大量の話題があったのですが、時間がなくてなかなか書けませんでした。今日はスコープの話題です。Javaの次のようなコードがありました。
public boolean my_func() { 処理 boolean bool = some_func(); return bool; }
さて、このコードを発見した人が騒ぎ始めます。bool変数に結果を代入する理由が分からないそうです。コードを書いた人はsome_funcの返値がboolean型だと明示されて読みやすくなるということです。諸説もろもろあります。Java初心者のぼくは、my_funcが十分短く、メソッドシグネチャとreturnで返すところまでが一望できるので、わざわざbool変数に代入しないほうがいいです。some_funcとreturnの間で処理も全くないので、コードの読みやすさが変数に代入したからといってよくなるとは思えません。
横で話を聞いていた大谷さんは、あんまりそんなことは気にしていないようです。でも、変数名がboolは止めてほしいと言っていました。たぶん、bool型がある言語を使ったことがあるのでしょう。それに、どうせ変数に代入するのなら、これぐらいの短い範囲であれば、fとか一文字の変数の方がいいと言っていました。
詳しく聞いて見ると、スコープに応じて変数名の長さは変えるべきだと言っていました。例えば、クラス変数は二つの単語を連結したもので、メソッド内で全体に使うものは、一つか二つ単語を連結させて、数行の局所的なものであれば一文字の変数で十分だということです。局所的であれば、すぐに全体が見えるので、長くする必要はないらしいです。
この場合もスコープを意識すれば、
public boolean my_func() { 処理 return some_func(); }
が妥当だと思います。
- Category(s)
- 開発
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/dev/30b930b330fc/tbping
- 電車の中吊り広告でひやり
- ¦
- Main
- ¦
- 今日のハック