TOP

このエントリーをはてなブックマークに追加

Shotgun Surgery

Shotgun Surgery(ショットガンサージェリー)

Shotgun Surgeryは、1つの変更が複数のクラスやメソッドにまたがって行われることを指ります。たとえば、ある機能を追加するために複数のクラスのコードを修正しなければならない場合です。

兆候と症状 1つの変更を加えるために、複数のクラスやメソッドを修正する必要がある。

問題の理由 このような状況は、機能が適切に分割されていなかったり、責任の分担が不明確な場合に発生します。

対処

  • Move Method」や「Move Field」を使って、関連する機能を1つのクラスにまとめます。

  • Extract Class」でクラスを分割し、責任を明確にします。

効果

  • 修正箇所の局所化
  • 責任の明確化


書籍としてはこの辺りが参考になると思います。

リファクタリング第2版
refactoring
レガシーコード改善ガイド
legacy_code