/note/tech

コードの再利用

重複については、先の抽象化の話と共通しますが、2つのロジックが重複しているかどうかはコードの見た目で判断すべきではありません。 同一のロジックが同一のユースケースで利用される場合もしくはユースケースとは関係なく単純な演算処理を行うコードが複数回出現する場合に限り重複と判断すべきです。

ロジックの見た目は似ているが実はユースケースが違うコードはそれぞれ独立した責務1をもつ場合が多いです。 一方のユースケースだけに変更が必要になった場合2、共通化を剥がす作業が必要になります。 ただ単に制御フローや処理内容が同一であるからという理由で重複と判断すると、逆に過剰な結合の原因となってしまいます。

早まった共通化はメンテナンス性に致命傷を与えるので本当に気を付けなくてはならない