ホソカワです。
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