🔨
スキルリファクタリング技術的負債 2026年4月1日

段階的リファクタリング戦略

📁 スキル 👁 -- 閲覧

段階的リファクタリング戦略

目的

既存の動作するコードを壊さずに、ドメインオブジェクト設計へ段階的に移行する。

手順

Step 1: プリミティブを値オブジェクトに置き換える(低リスク)

  • Stringのフィールドを値オブジェクトに置き換える(型の変更のみ)
  • コンストラクタでバリデーションを集約

Step 2: 散らばったロジックをドメインオブジェクトに移す

  • サービス層の条件分岐・計算をドメインオブジェクトのメソッドとして移動
  • テストを先に書いてから移動する

Step 3: コレクションをファーストクラスコレクションに置き換える

  • List<X> を渡している場所を特定し、コレクションオブジェクトに包む

Step 4: サービス層を薄くする

  • ドメインオブジェクトが業務ロジックを持つようになったら、サービス層のコードを整理

チェックリスト

  • 各ステップの前後でテストが通ることを確認した
  • 1コミットで複数ステップを混在させていないか
  • 新しいドメインオブジェクトにテストを書いたか

出典

現場で役立つシステム設計の原則(増田亨)第9章 / Refactoring(Fowler)