田中です。
hidehiko yoshiharaさんの<200108240109.KAA31036@....jp>から
>> 田中靖宏です。
>> 「You are NOT gonna need it.」という言葉を見たとき、最近ベストセラーに
>> なった『「捨てる!」技術』の思想に近いなあと思いました。
>>
>> もしものときのためにとっておく、という行為がシステムを複雑にしている場
>> 面によく出会います。
>
>なるほど、'YAGNI'は、「明日にならないと必要とされない機能のために、追加のコードを
>今日書くことはしてはいけない」と言われているのが一般的なようですが、
>田中さんは、「必要ない過去のコードに固執するな」と言われているのですね。
まあそういうことです。
ですが、ここは時間軸にこだわらず、過去に書いたコードにせよ、これから追加
しようとしているコードにせよ、「現在必要の無いものは持たない」という意味
に捉えてください。
読んでいただけるとわかりますが、『「捨てる!」技術』でも「必要の無いもの
を捨てる」ということと同時に「必要最小限のものしか買わない」ということが
書かれています。
>この事が'YAGNI'になるのであれば、既存のシステムをバージョンアップや、
>修正する前のリファクタリング作業で、必要の無い過去のコードを省いたりするこ
>とは(これもリファクタリングと言えるなら)、
>「リファクタリングはYAGNI原則に違反していない」事になるようですが?
違反してないと思いますよ。
リファクタリングで目指すのは「将来の変更に耐えうるようにシンプルなコード
に変更する」ということであって、「将来必要になるかもしれないコードを付け
加える」ことではないと思ってます。
--
Tanaka Yasuhiro mailto:tanaka_yasuhiro@....jp