Index: [Article Count Order] [Thread]

Date:  Fri, 31 Aug 2001 13:26:56 +0900
From:  Wataru Fukushima <w.fukushima@....com>
Subject:  [XP-jp:02443] Re: 接頭句に関して (Re: バグ・パターン)
To:  extremeprogramming-jp@....jp
Message-Id:  <20010831131006.98BA.W.FUKUSHIMA@....com>
In-Reply-To:  <20010831123527tsujit@....jp>
References:  <20010831115735.98B1.W.FUKUSHIMA@....com> <20010831123527tsujit@....jp>
X-Mail-Count: 02443

福嶋です。
#確かに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