Python 程式碼審查與重構建議產生器
用途
對 Python 程式碼做六個維度的結構化審查,產出「問題 → 風險等級 → 修改建議 → 修改後範例」的可執行清單,讓你或接手的人有明確的重構路線圖。
何時用
- 適合:開發完成要做 code review,或接手舊程式碼需要理解現狀並找出優化點時。
- 不要用:只需要找安全漏洞與慣例問題的快速掃描——那情境用「Python 品質審查版」更精準;如果只是除錯請用「Python 除錯根因分析」。
Prompt
text
請對以下 Python 程式碼做六維結構化審查。
程式碼用途:{{程式碼用途,例:計算訂單折扣與稅金}}
使用情境:{{使用情境,例:電商後端,每天約 10 萬次呼叫}}
程式碼:
{{程式碼}}
六個審查維度:
1. 功能正確性(邏輯是否符合用途說明、邊界條件處理)
2. 異常處理(是否有明確的 except 類型、錯誤訊息是否有用)
3. 命名清晰度(變數名、函式名是否表達意圖)
4. 型別提示(有無缺失或錯誤的 type hints)
5. 可讀性(函式長度、巢狀深度、重複邏輯)
6. 效能(不必要的迴圈、大量資料的記憶體使用)
輸出格式(每個問題一條):
| 維度 | 問題描述 | 風險等級(高/中/低)| 修改建議 | 修改後範例(程式碼片段)|範例 / 變體
- 填好變數:程式碼用途填
計算訂單折扣與稅金、使用情境填電商後端,每天約 10 萬次呼叫、程式碼填入discount.py的內容。 - 變體(只看高風險):在輸出格式後加「只列出風險等級為高的問題」,縮小審查範圍。
- 變體(產出重構計畫):在 prompt 末尾加「審查完成後,輸出一份三步驟重構計畫,依風險等級由高到低排序,每步預估工時」。
🎯 範例輸出(實測)
在 Claude.ai 跑這句、程式碼用途填「計算訂單折扣與稅金」、使用情境填「電商後端,每天約 10 萬次呼叫」、程式碼填入一段
discount.py的結果:
點開看 AI 實際輸出
測試輸入程式碼(discount.py):
text
def calc_order_total(items, coupon_code=None):
total = 0
for item in items:
total = total + item['price'] * item['qty']
if coupon_code == 'VIP10':
total = total * 0.9
elif coupon_code == 'SUMMER20':
total = total * 0.8
tax = total * 0.05
return total + tax六維結構化審查結果:
| 維度 | 問題描述 | 風險等級 | 修改建議 | 修改後範例 |
|---|---|---|---|---|
| 功能正確性 | float 乘法累加在 10 萬次呼叫下誤差可累積到分位,台灣電商要求整數元精度 | 高 | 改用 Decimal | from decimal import Decimal; total = Decimal("0") |
| 異常處理 | 無任何例外處理;若 item 缺少 price 或 qty 鍵,回傳 KeyError 無法追蹤 | 高 | 加 try/except KeyError as e: raise ValueError(f"商品資料缺少欄位: {e}") | — |
| 命名清晰度 | total 在迴圈中既是小計又是折扣後金額,語意模糊;建議拆成 subtotal、discounted_total | 中 | 拆分變數名稱 | subtotal = sum(...) |
| 型別提示 | 函式無任何 type hint,回傳值型別不明 | 中 | 加 items: list[dict], coupon_code: str | None = None) -> Decimal | — |
| 可讀性 | 折扣邏輯硬編在函式裡,新增優惠券需改程式碼;建議抽成 COUPON_RATES: dict[str, Decimal] 常數 | 中 | 常數化 | COUPON_RATES = {"VIP10": Decimal("0.9"), ...} |
| 效能 | for item in items: total = total + ... 可改用 sum(),在 10 萬次高頻呼叫下更快 | 低 | subtotal = sum(Decimal(str(i['price'])) * i['qty'] for i in items) | — |
💡 實測心得:「使用情境:每天約 10 萬次呼叫」這行讓 AI 把 float 精度問題從「低風險」升到「高風險」——同樣的 float 乘法,在一次性腳本裡可能只是 Suggestion,但在高頻金融計算場景就是 Critical。使用情境填越具體,風險等級的判斷就越準確。
延伸
簡單來說,六維審查的價值是讓「可讀性問題」不被「邏輯錯誤」遮蓋,也讓「效能問題」在優化前就被識別出來而不是等上線後才發現。如果審查結果顯示問題集中在安全與慣例,可以搭配「Python 品質審查」做更細的安全掃描。