コピペは悪か? :-|
ソースコードのコピー&ペーストは、完全に悪だろうか。
- プロジェクトによっては、コピー&ペーストをしてもよい。ほかの部分でもされているなら、変にメソッド抽出や別クラスへの委譲などするよりは、コピー&ペーストしたほうがよい。
- ごくまれにだが、許せる場合があるかもしれない。そのようなケースにほとんどお目にかかったことは無いが、すべてを完全否定はできない。
- 絶対に悪である。よいわけが無い。ソースのコピー&ペーストを許すと、リファクタリングも難しくなり、修正するたびに、デグレードの可能性が増えてしまう。
実は、私は2番目の「もしかしたら、完全な悪ではないかもしれない。」と思っている。しかし、今までの経験ではまだ一度もコピー&ペーストしたほうがよかった、と思える状況に遭遇したことはなかった。(もちろん、ソースのコピー&ペーストは山ほど見てきた。)
しかし、1番を推奨する人もいるようだ。実際聞いてみると、
- 今までコピー&ペーストを実施してきたが、問題は起きていない。*1
- 現状、とても忙しいので早く作るにはそのほうがよい。
- プログラマにお願いするには、慣れている手法でやってもらったほうがよい。
- メソッド化などすると、パフォーマンスが悪くなる。*2
- 最初から作り直すのなら、コピー&ペーストをやめて作るのもよい。しかし、すでにそう作られているのだから、そのままの文化で進んだほうがわかりやすい。
だそうだ。
うーん、そうなのかぁ。