# DRY (Don't repeat yourself)

繰り返すな

同じ処理を複数の箇所に書かないようにしましょう。コードのコピペには以下の問題があります。

  • コード量が多くなる
  • 処理の修正時にすべて修正しなければいけなくなる
    • 修正漏れも起きやすくなる
  • 同じテストを書かないといけなくなる
    • もしくはその部分のテストを書かなくなる

同じ処理は関数に切り出しましょう。また、同じ値に対して同じ処理を行っている場合はクラスに切り出しましょう。

NOTE

✏️ 同じ処理をコピペしない

# 関連

# WET (Write everything twice)

同じことを繰り返す

DRYと対になるアンチパターンです。

# 注意

一見同じ処理でも、目的や役割が異なる場合は共通化すべきでないケースがあります。目的が異なる処理は仕様変更が片方のみに発生する可能性があり、共通化されていると元に戻すことになってしまうからです。ただし、可能性を想定して実装するのはYAGNIに違反するので、基本的にはDRYを適用しましょう。