コピペをどうルール化するか

(id:daxnaya:20040813)より

というわけで明日からコピペ禁止である。鉄の掟である。
カット&ペーストはOKである。

コピペのルール化は難しい問題ですよね。

私たちのチームではコピペを明示的には禁止していません。これはペアプロをしているためある程度コントロールが効くと考えているからです。また、コピペ後はリファクタリングを行うのが普通だからです(当然テスト付きです)。以下が私たちのルールです。明文化していなかったので、この場を借りて明文化します。

  • テストを先に作ることの方が大事
  • ペア合意の下でのみ、コピペをしてもかまわない
  • コピペは精神が弱ってきている証拠のため、ペアの交代を考える。ペアが主導権を奪うくらいでいい
  • コピペ後のコードが他人によって直されていても文句は言わないこと

テストを先に作り、さらにペアが見守っているので、コピペのよくあるミス(3箇所直すべきところを2箇所しか直していない等)はペアによって指摘されるか、もしくはレッドバーによって補足されます。つまりテストとペアによってダブルチェックしているということになります。

問題はテストコードのコピペです。テストのテストは無いので、ペアが注意深く見守るしかありません。「同じようなコード」はどちらかというと実コードよりもテストコードに現れやすいので、注意が必要です。テストコードのコピペは、ペアの同意と注意が必要です。

私たちのチームでは「だってコピペ厨ですから!!!」というセリフが免罪符です。この言葉を唱えれば一時的にコピペを許可します。罪を犯していることを自覚する作用が得られます。