Index: [Article Count Order] [Thread]

Date:  Sun, 17 Sep 2000 11:30:13 +0900
From:  Kaoru Hosokawa <khosokawa@....com>
Subject:  [XP-jp:00896] Re: VXP タスク3	--Confi g
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <B5EA5B13.37D8%khosokawa@....com>
In-Reply-To:  <39C2E55B.4DDC942B@....jp>
Posted:  Sun, 17 Sep 2000 11:27:16 +0900
X-Mail-Count: 00896

ホソカワです。

on 00.9.16 11:55 AM, firo@....jp at firo@....jp wrote:

> 矢崎です。
> 素モードで。。
> 
> Kaoru Hosokawaさん wrote:
> 
>> ホソカワです。
>> 
>> on 00.9.14 8:00 PM, firo at firo@....jp wrote:
>> 
>>> 矢崎です。続きです。
>>> 
>>> (太郎さん)
>>> 今コーヒー飲みながら次郎君から聞いたんだけれど、
>>> Configファイルにある頭が「X-」で始まるものは、RFC
>>> で決まっていないものということで、まあ、設定者が
>>> 好きに決めれるみたい。だから、これは自由設定OKと
>>> いうことで、それ専用のアクセサを作らないで、Config
>>> に書いてある順番で取り出せるようにしよう(あくまでも
>>> 頭が「X-」で始まるものだけ)。
>> 
>> すみません。どうして順番に取りだせるようにするのでしょうか?フィールドごとに
>> get できた方が使いやすいと思いますが…
>> 
> 
> 私もあまり詳しくないのですが、Eメールに関するRFC(
> 番号とか知らないので、お詳しい方フォローしてくだされば
> ありがたいです)か何かで、次のように決まっているらしいです。
> (ホソカワさんがご存知のこともあるかとは思いますが、
> その点はご容赦お願いします)
> 
> #それと以下の点は、私も詳しく知らない点もあり、説明の
> 都合上、(書き方は断定的であるにもかかわらず)想像して書
> いてあるところもあります。ですから、全てを鵜呑みされないよう
> ご注意お願い申し上げます。まちがい個所について、どなたか
> のフォローいただければありがたいです。
> 
> ヘッダにおいては規定された情報と、そうでない情報があって
> 規定されていない情報は頭にX-とつけることで、それは規定外
> のヘッダ情報であると、sendmailやらPOP3やらメーラやらが判断
> するようです。例えば[XP-jp:00882]を、うちのネットスケープで
> 全ヘッダ情報表示モードで見ると、ヘッダは以下のようになって
> います。(長いので省略してる部分もあります)
> 
> Received: from keith.esm.co.jp (keith.esm.co.jp [210.196.228.86])
> Received: from elise.center.esm.co.jp ([172.16.0.134]) by keith.esm.co.jp
> Received: from elise.center.esm.co.jp (localhost [127.0.0.1]) by
> elise.center.esm.co.jp
> Date: Wed, 13 Sep 2000 19:48:37 +0900
> Posted: Wed, 13 Sep 2000 19:49:30 +0900
> From: firo <firo@....jp>
> Reply-To: extremeprogramming-jp@....jp
> Subject:[XP-jp:00882] VXP タスク3 --Config
> To: extremeprogramming-jp@....jp (extremeprogramming-jp ML)
> Message-Id: <00Sep13.194931jst.115202@....jp>
> X-ML-Name:extremeprogramming-jp
> X-Mail-Count:00882
> X-MLServer: fml [fml 2.1_GAMMA#185](distribute only mode)
> X-ML-Info: If you have a question, please make a contact with
> Mime-Version:1.0
> Content-Type: text/plain; charset=iso-2022-jp
> Content-Transfer-Encoding:7bit
> Precedence: list
> Lines:254
> X-Mozilla-Status: 8001
> X-Mozilla-Status2: 00000000
> X-UIDL: caac309db18f5530c3d76d89ac0337ac
> 
> 上の例で言えば、頭にX-がついていない識別子、つまり
> Received: Date: Message-Id: などは、RFCかなにかで規定
> されていて、これはそのままヘッダとして解釈されます。それ
> に対して、何らかの理由でヘッダ情報を追加したい場合、でき
> ない、というのではなく「X-」という識別子をつけることで、それを
> ヘッダ情報として取り扱う逃げ道が用意されているようです。
> ですから、ホソカワさんが仮にご自身のMLを作ったり、メーラを
> 開発してそれに独自のヘッダをつけたいとなった場合、
> X-fogefoge(fogefogeは任意。ただし日本語が通るかどうか等は
> 私は不明)というものを好きなように使うことができる、、というこ
> とのようです。
> 
> 上記の事情から、X-fogefogeというのは、任意設定可能であり、
> (fogefogeが何になるか、いくつあるか、どういう順番になるか)
> そうであればアクセサを事前に決めることはできず、できるとす
> ればConfigファイルから順番に取り出すことくらいではないかな
> というのが私の考えです。そして、順番は、現時点では、Config
> ファイルがテキストファイルであるし、わざわざ取り出し順を決める
> ための番号を、その行に別に定義するのも、あまりありそうに
> ないので、書いてある順に取り出せばよいのでは?と考えました。
> (Configファイルの定義者にも、そういう前提があると、理解して
> 定義していただく)
> 
> 

少しわかったような気がします。つまり、「X- で始まる識別子の内容は、
extremedomo には関係ないので(正しいか間違っているか判断がつかないので)、
iter で読み込み、必要な時、iter で書き込む。」ということですね。この部分を使っ
ているコードを書く時に、再確認します。ありがとうございます。

>> 

…

>> private void createCorrectConfigFile(filename) {
>> Config aConfig = new Config();
>> aConfig.setName("extremeprogramming-jp");
>> // ...
>> aConfig.save(filename);
>> }
>> 
>> の様に Config にファイルに吐き出す機能を追加すればもっときれいですね。
> 
> これについては、現時点でConfigにsetNameとかsaveの機能が
> 必要だとまではまだ考えられていません。カウンタについては、
> その必要性を示唆していますが、これについては別のタスクで
> やりたいと考えいます。名前については、示唆すらもされていま
> せん。ですから、YAGNIの原則からいって、seNameやsaveは、
> 今のところ作るべきでないと判断しています。
> 

了解しました。でも、下を読んで下さいね。

> ただし、Self Encapsulate Field(自己カプセル化フィールド)を
> 適用してsetNameを作るというリファクタリングはあります。しか
> し、そのリファクタリングはまだ行われていませんし、また仮に
> そうしたとしてもそれはprivateメソッドになる可能性があります。
> 
> 別の考えとして、テストのためにあえて作る、のは、これがXPと
> してOKかどうかは、一考してもいいかもしれません。
> 
> どうなのでしょうか?

そう、私も疑問に思っています。あまり厳格に決まっていないのでしょう。私は、テ
ストも refactor の対象だと思っているので、きれいにするために helper 的なコー
ドを追加することは必要だと思います。システムに対する YAGNI は、違反していま
すが、テストに関しては、(今テストコードをきれいにするために必要だから)違反
していないと思っています。

-- 
Kaoru Hosokawa
khosokawa@....com