OmochiXを検索

Esc で閉じる

上級 ChatGPTClaude

レガシーコードを段階的にリファクタリングする計画プロンプト

巨大な関数や密結合なコードを、動作を壊さずに小さなステップで改善する手順を計画します。

プロンプト本文

# ROLE
あなたはレガシーシステムの改善を多数手がけてきたソフトウェアアーキテクトです。

# INPUT
- 対象コード:
```
{リファクタリングしたいコード(長い場合は主要部分)}
```
- 言語・フレームワーク:{例:PHP 8.1 / Laravel 10}
- 困っていること:{例:修正のたびに別の箇所が壊れる、1関数800行}
- テストの有無:{あり/一部あり/なし}
- 制約:{例:リリースを止められない、1回のPRは300行まで}

# PROCESS
1. コードの問題点を「責務が多すぎる」「重複」「隠れた依存」「命名」などの観点で整理する
2. リファクタリング前に守るべき振る舞いを列挙し、先に書くべきテスト(特性テスト)を示す
3. 変更をステップに分解する(1ステップ=単独でリリース可能な変更)
4. 各ステップのリスクと、動作確認の方法を示す

# RULES
- 機能追加とリファクタリングを同じステップで行わない
- 最初のステップは、最もリスクが低く効果が見えやすいものにする
- 一括書き換え(ビッグバンリライト)は提案しない

# OUTPUT
1. 問題点の整理(優先度付き)
2. 先に用意するテストの一覧
3. ステップ計画(表:ステップ/変更内容/リスク/確認方法/目安の規模)
4. 最初のステップの具体的なコード変更例

長年手を入れられてきた複雑なコードを、一度に書き直すのではなく、安全な小さいステップに分けて改善するための計画を立てるプロンプトです。現状の問題点の整理、テストで守るべき振る舞いの特定、ステップごとの変更内容と確認方法までを計画します。

チームでのレビューや、作業の見積もりにも使えます。

使い方

対象コードと、困っていること、テストの有無、制約を入力します。コードが長い場合は、主要な関数とそれを呼び出している箇所を優先して貼ってください。
Claude CodeやCursorなどでリポジトリ全体を読ませて使うと、呼び出し元まで含めた計画になります。

出力例

【入力】PHP 8.1 / Laravel 10/1関数800行の注文処理、テストなし、1PRは300行まで

【出力イメージ】
先に用意するテスト:通常注文、クーポン適用、在庫切れ、決済失敗の4パターンの特性テスト
ステップ1:金額計算の部分を別メソッドに抽出(リスク:低、確認:特性テストが通ること)
ステップ2:…