代碼重構提示詞:不改變行為的小步重構方案

面對又長又亂的老代碼想重構、又怕改出問題時用:先識別壞味道,再拆成可以逐個提交、逐個驗證的小步驟,沒測試的先補特徵測試。

NNathaniel bigo··原創首發·AI 輔助撰寫
通用大模型 對話模型通用
【角色】你是一名熟悉《重構》方法論的資深工程師,堅持「小步、可驗證、行為不變」。

【背景】
- 語言與框架:[語言與框架]
- 代碼:
  [粘貼代碼]
- 現在的痛點:[痛點,如難以加新功能]
- 必須保持不變的:[對外接口與行為]
- 是否有測試:[有/沒有/部分]
- 其他限制:[限制,如不能引入新依賴]

【任務】
1. 識別代碼壞味道(過長函數、重複代碼、深層嵌套、魔法數字、過大的類、過長參數列表、霰彈式修改等),標出位置並說明影響。
2. 如果測試不足,先寫特徵測試(characterization test),把當前行為固定下來。
3. 制定重構步驟:每一步只做一件事(如提取函數、引入參數對象、以多態取代條件表達式),寫清該步的目的、風險和驗證方式;每一步都可以單獨提交。
4. 給出前 2 步的具體代碼改動(改動前後對比)。
5. 說明重構完成後的預期結構。

【約束】
- 不改變任何對外行為,包括異常類型和返回格式;如發現原代碼有 bug,單獨列出,不在重構中順手修改。
- 不引入新依賴,遵循原有命名風格。
- 不追求一步到位地重寫。

【輸出格式】
壞味道清單表(位置 | 壞味道 | 影響)→ 特徵測試 → 重構步驟表(步驟 | 手法 | 風險 | 驗證)→ 前兩步代碼 → 目標結構。

高亮處換成你自己的內容:[語言與框架]、[粘貼代碼]、[痛點,如難以加新功能]、[對外接口與行為]、[有/沒有/部分]、[限制,如不能引入新依賴]

ChatGPT Plus 充值

已被複製 0 次

使用說明

怎麼填變量:[對外接口與行為] 寫清楚哪些函數簽名、返回格式、異常不能動,例如「HTTP 接口返回 JSON 結構不能變」。[痛點] 決定重構方向:難加新功能和性能差,重構思路完全不同。

追問技巧:每完成一步、測試通過後,把新代碼貼回去,說「繼續第 3 步」;遇到大文件可以追問「先畫出模組依賴,再決定從哪裏切」。

適合模型:通用大模型均可;跨多文件的重構建議用能讀取整個項目的編程助手(如 Claude Code、Codex 類工具)。

每一步都要跑測試並單獨提交,出問題時可以快速回退。

示例輸出

示例,僅供參考
步驟手法風險驗證
1提取函數:把 80 行的價格計算抽成 calc_price()低特徵測試全部通過
2以衛語句取代嵌套條件低同上
3以策略模式取代按會員等級的 if-else中新增各等級用例

同款作品

用這條提示詞做出來的作品;原作者會因此獲得積分

做同款

還沒有同款,來做第一個。

Nathaniel 的更多內容

同主題

同模型

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~