福嶋です。
#確かにXPの話題から外れてしまったいました。すみません。
On Fri, 31 Aug 2001 12:35:27 +0900, according to the article
"[XP-jp:02441] Re: 接頭句に関して (Re: バグ・パターン)"
tsujit@....jp wrote:
> >意味のある変数名がつけられていれば、スコープが違う変数を混同する
> >ことはあまりないのではないでしょうか。
>
> その変数名の「意味」に「これはメンバ変数なんだよ」
> という意味をもたせると考えるかどうかですね。
そうですね。
私は、そういう意味「も」持たせてしまうことには反対、ということです。
> >> 実際、平鍋さんの引用した例では、何らかのプレフィックスでの対応が
> >> 一番簡単(確実)だと思います。
> >
> >一番簡単で確実なのは、jlintかなんかでチェックすることだと思います。
>
> それが出来る環境ではその通りだと思います。
> ただ、皆が皆Javaなわけではないですから、、、
> #どうしても自分の環境(UNIX/Win + C++)で考えてしまいますね(^_^;
gccでもチェックしてくれますよ。
どういうオプション(またはgccのバージョン相違?)かは忘れましたが。
> >お互いに気をつけていてもやってしまうのがミスというものです。:-)
>
> だからペアプロで頻繁なメンバの入れ替え、となるのでは
> #とXPネタに戻してみる。
そうですね。:-)
ツールとかで機械的にチェックできれば、Ant(というかbuild.xml)に
タスク追加、ですね。
> >変数のスコープを言語規定にしてしまうと、それはそれでやっかいな
> >ことになってしまわないかな、と思います。
>
> どうでしょう?
> [XP-jp:02435] Re: バグ・パターン
> でつちもとさんが尋ねてましたが、
> Rubyではメンバには @ を接頭句にするという決まりがあります。
> (その他、ローカル変数、グローバル変数、固定値(final)、等にもあります)
すみません。Rubyは、本をちょっぴり読んだくらいで、コーディングしたこと
ないのに言うのは申し訳ないですが、「これでまた1つRubyが嫌いになりました」
というのが感想です。
(関数呼び出しの括弧が省略できてしまう、ということなどが嫌いでした。
Javaも、for文やif文などで{}が省略できてしまうのが嫌いです)
> 私自身はこの言語規定には大賛成な訳ですが。。。
> この言語規定についての批判論ってあるのでしょうか?(<純粋に疑問)
接頭辞に慣れていたり、または、あることを前提とした環境にいた方に
とっては、全く問題ないのかもしれません。
ただ、接頭辞を使ってなかった人からすると、「なぜそんな余分なものを
つけなきゃいけないのか?」と思ってしまうのです。
(ちょっと過激な発言で反感を買いそうですが)
ローカル変数かグローバル変数か固定値かが、接頭辞でしか区別がつかない
ような複雑なプログラムは、リファクタリングすべきでは? と思います。
----------------------------------------
(株)PFU ソフトプロダクト事業部第二開発部
福嶋 航
w.fukushima@....com