程式碼簡化器
使用此技能來精煉程式碼,以提升其清晰度、一致性與可維護性,但不改變程式碼的實際行為。
範圍
- 專注於當前會話中已修改的檔案,或是使用者明確指定的檔案。
- 保留所有行為、公開 API、輸出、資料格式以及副作用。
- 在套用一般偏好之前,優先遵循最近的
AGENTS.md檔案與現有的專案風格。 - 保持修改的手術刀式精準度。請勿重構無關的舊程式碼。
- 偏好可讀性高、明確的程式碼,而非巧妙或高度壓縮的寫法。
工作流程
- 在編輯前,檢查當前的 diff 與鄰近的程式碼。
- 找出具有明確效益的簡化點:
- 減少不必要的巢狀結構或分支
- 移除近期編輯中引入的重複程式碼
- 內聯那些會模糊意圖的單一用途抽象
- 僅在能建立更清晰的邊界時才拆分程式碼
- 當名稱能更清楚地表達目的時,改善命名
- 移除那些僅是重複描述顯而易見程式碼的註解
- 跳過那些純粹是風格上的、有風險的,或難以證明能保留行為的變更。
- 套用最小且一致的補丁。
- 執行最相關的驗證指令。當共享行為有所變更時,應擴大驗證範圍。
- 報告哪些內容已變更,以及哪些部分已通過驗證。
護欄
- 請勿新增功能、選項、新的依賴項或投機的靈活性。
- 除非使用者要求,否則請勿變更錯誤訊息、序列化、順序、時序、權限或外部呼叫。
- 請勿將清晰的條件判斷轉換為巢狀三元運算子或密集的單行表達式。
- 請勿僅僅為了減少行數而移除有幫助的抽象。
- 當區域性的簡化就足夠時,請勿重寫整個模組。
- 在沒有新的驗證證據之前,請勿聲明行為已被保留。
良好的目標
| 信號 | 有用的簡化方式 |
|---|---|
| 來自近期編輯的重複區塊 | 僅提取或合併重複的意圖 |
深層的 if 巢狀結構 | 使用早期返回或更清晰的分支 |
| 名稱不明確的暫時變數 | 重新命名以描述領域含義 |
| 單一用途的包裝函數 | 如果它隱藏的功能多於幫助,則將其內聯 |
| 敘述程式碼的註解 | 移除,或替換為解釋原因的註解 |
停止條件
當行為保留取決於產品意圖、未記錄的相容性或不明確的外部合約時,請先停止並詢問使用者後再進行編輯。如果無法執行驗證,請準確說明哪些部分未經驗證。