| name | code-refactor |
| description | Proactively detect and execute code refactoring to maintain DDD architecture and code quality. Triggers: RF, refactor, 重構, 拆分, split, 模組化, modularize, 太長, cleanup, 整理, clean, 優化, optimize, extract, 提取, simplify, 簡化, 複雜度, complexity, 重組, reorganize, 改善, improve. |
程式碼重構技能
描述
主動偵測並執行程式碼重構,維持 DDD 架構和程式碼品質。
觸發條件
- 「重構這段程式碼」、「refactor」
- 「這個檔案太長了」
- 「模組化」、「拆分」
- 主動觸發:偵測到程式碼超過閾值時
核心原則
📜 依據憲法第 7.3 條「主動重構原則」
重構不是改天換地,而是持續的小步快跑
每次提交都應該比上次更乾淨
閾值設定
📏 長度閾值
| 類型 | 警告 | 強制重構 |
|---|
| 檔案 | > 200 行 | > 400 行 |
| 類別 | > 150 行 | > 300 行 |
| 函數 | > 30 行 | > 50 行 |
| 目錄檔案數 | > 10 個 | > 15 個 |
🔄 複雜度閾值
| 指標 | 警告 | 強制重構 |
|---|
| 圈複雜度 | > 10 | > 15 |
| 巢狀深度 | > 3 層 | > 4 層 |
| 參數數量 | > 4 個 | > 6 個 |
| 依賴數量 | > 5 個 | > 8 個 |
重構模式庫
1️⃣ Extract Method(提取方法)
觸發條件:函數過長、重複邏輯
def ():
order.items:
ValueError()
order.total < :
ValueError()
subtotal = (item.price * item.qty item order.items)
tax = subtotal *
total = subtotal + tax
():
._validate_order(order)
total = ._calculate_total(order)
._save_order(order, total)
():
order.items:
ValueError()
() -> Decimal:
subtotal = (item.price * item.qty item order.items)
subtotal * Decimal()