http://martinfowler.com/bliki/RefactoringMalapropism.html

かつて、わずかな人しか知らなかった用語「リファクタリング」は、今ではコンピュータ業界の中でフラフラ迷走している。 これは私にも責任がある。 私はプログラマたちの生活の向上と、ビジネスに利益をもたらせたいと願っているのだが(重要なことだが、私はリファクタリングの父でもないし、発明者でもない。ただの執筆者である)……

……だが、リファクタリングは、適切に使われてはいない。 リファクタリング中に2,3日システムが動かなくなっちゃってーなどと言ってる奴がいたら、んなもんリファクタリングじゃあなーいと言ってやれ。 ドキュメントをリファクタリングしちゃるとか言ってる奴、それもリファクタリングじゃねーぞコラ。 そういうのは、リストラクチャリング(再構築)というのだッ。

「リファクタリング」とは、再構築という大きな意味での活動を行うための、非常に具体的な技術のことである。「再構築」とは、部品を再配列することを意味する。これは汎用的な用語であり、何か特定の方法を意味するものではない。

リファクタリングはより具体的な技術のことで、小さな「振る舞いを保持したままの変化」(リファクタリングと呼ばれている)から成り立っている。 システムをリファクタリングするときは、数分以上、システムが壊れたままにしてはいけない。それから、振る舞いがしっかり決まっていないものをどうやってリファクタリングしてよいかは私も分からない。

あー負け戦をしてるかもしれないなあ。でも、「リファクタリング」という言葉の正確さは守りたいのだ。再構築する技術は他に良いのがあるかもしれない。だけどそれはリファクタリングではない。私たちが何を意味し、私たちがいつこの言葉を使うのかを明確にしておきたいのだ。