Index: [Article Count Order] [Thread]

Date:  Fri, 24 Aug 2001 13:11:09 +0900
From:  Tanaka Yasuhiro <tanaka_yasuhiro@....jp>
Subject:  [XP-jp:02379] 捨てる技術 (Re: XP 記事)
To:  extremeprogramming-jp@....jp
Message-Id:  <200108240409.f7O49Ps12791@....jp>
In-Reply-To:  <200108240109.KAA31036@....jp>
References:  <004001c12b84$f1456960$660fa8c0@DAIGO>	<200108230606.f7N66wU20411@....jp>	<200108240032.f7O0WSs07564@....jp>	<200108240109.KAA31036@....jp>
X-Mail-Count: 02379

田中です。

hidehiko yoshiharaさんの<200108240109.KAA31036@....jp>から
>> 田中靖宏です。
>> 「You are NOT gonna need it.」という言葉を見たとき、最近ベストセラーに
>> なった『「捨てる!」技術』の思想に近いなあと思いました。
>> 
>> もしものときのためにとっておく、という行為がシステムを複雑にしている場
>> 面によく出会います。
>
>なるほど、'YAGNI'は、「明日にならないと必要とされない機能のために、追加のコードを
>今日書くことはしてはいけない」と言われているのが一般的なようですが、
>田中さんは、「必要ない過去のコードに固執するな」と言われているのですね。

まあそういうことです。
ですが、ここは時間軸にこだわらず、過去に書いたコードにせよ、これから追加
しようとしているコードにせよ、「現在必要の無いものは持たない」という意味
に捉えてください。

読んでいただけるとわかりますが、『「捨てる!」技術』でも「必要の無いもの
を捨てる」ということと同時に「必要最小限のものしか買わない」ということが
書かれています。

>この事が'YAGNI'になるのであれば、既存のシステムをバージョンアップや、
>修正する前のリファクタリング作業で、必要の無い過去のコードを省いたりするこ
>とは(これもリファクタリングと言えるなら)、
>「リファクタリングはYAGNI原則に違反していない」事になるようですが?

違反してないと思いますよ。

リファクタリングで目指すのは「将来の変更に耐えうるようにシンプルなコード
に変更する」ということであって、「将来必要になるかもしれないコードを付け
加える」ことではないと思ってます。


-- 
Tanaka Yasuhiro mailto:tanaka_yasuhiro@....jp