0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeを使ったレガシーコードのモダナイゼーション実践

0
Posted at

Claude Codeを使ったレガシーコードのモダナイゼーション実践

3つの原則

  1. 一気にやらない(リスクが高すぎる)
  2. まずテストを書く(変更の安全網を作る)
  3. 段階的に置き換える(Strangler Figパターン)

ステップ1: レガシーコードの理解

claude "src/legacy/ 以下のコードを分析して:
1. このモジュールが何をするか(外部から見た振る舞い)
2. 内部の依存関係マップ
3. 外部から呼び出されているエントリポイント
4. データの入出力形式"

ステップ2: キャラクタリゼーションテスト

claude "src/legacy/payment-processor.js の現在の振る舞いを
キャラクタリゼーションテストとして書いて。

目的: リファクタ前の動作保証の安全網を作ること。
入出力のパターンを網羅的にテスト。"

キャラクタリゼーションテスト: コードが「こうあるべき」ではなく「今こう動いている」をテストする手法。


ステップ3: Strangler Figパターン

claude "src/auth/session.ts を廃止するため:
1. src/auth/session-v2.ts を新規作成(jose使用)
2. インポートを1ファイルずつ v2 に切り替え
3. 全テスト通過後に session.ts を削除
今回は手順1のみ実施"

よくある定型リファクタ

# コールバック地獄 → async/await
claude "src/legacy/user-service.js のコールバックを
async/await に変換。エラーハンドリングは try/catch に統一"

# グローバル状態 → 依存性注入
claude "src/legacy/db.js のグローバルdb接続を
依存性注入パターンに変更"

# 混在ロジック → レイヤー分離
claude "src/legacy/api.js の Routing/Business Logic/DB access を
routes/, services/, repositories/ に分離"

進捗の可視化

claude "モダナイゼーションの進捗レポートを生成:
- レガシーコードの残量(行数・ファイル数)
- 移行完了率
- テストカバレッジの変化
- 残タスクの優先順位"

まとめ

フェーズ Claude Codeの活用
理解 分析レポート生成
安全網 テスト自動生成
置き換え コード変換
検証 比較レポート

「テストなしには動かない」— この鉄則はAIを使っても変わらない。


この記事の内容は、Claude Code完全攻略ガイド(全7章)の一部。CLAUDE.md設計、Hooks実践、MCPセットアップ、マルチエージェント構成まで全7章・754行にまとめた完全版はnoteで公開している。

みょうが (@myougaTheAxo) ― ウーパールーパーのVTuber。AIツールの実践的な使い方を発信中。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?