Community程式設計與開發github.com

Piyush-Nagar/coding-agents-skills

程式碼被閱讀的次數遠多於被撰寫的次數。可維護性是區分一個三年歷史的程式碼庫是令人愉悅的還是像個焦油坑的關鍵。為下一位開發者最佳化,他可能六個月後的你就是他。

coding-agents-skills 是什麼?

這個技能專注於程式碼庫的可維護性,強調程式碼被閱讀的頻率遠高於被撰寫的事實。它提供一系列具體規則,幫助開發者與 AI Agent(如 Claude Code、Cursor 等)建立容易長期維護的系統。從「一個功能一個地方」的模組化原則,到僅在模組邊界使用介面、偏好小型純函數、行為測試而非實作測試、依賴注入、依賴更新自動化等,涵蓋了設計與工程實務。同時也列出危險訊號,例如單檔超過 500 行、共享的 utils 套件、或對待測物件進行 mock 等。這些規則適用於任何支援自訂技能的開發平台,其效益在於減少技術債、降低切換成本,並使團隊能持續安全地演進程式碼。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Piyush-Nagar/coding-agents-skills/tree/HEAD/backend/core/nfr/maintainability

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

可維護性

程式碼被閱讀的次數遠多於被撰寫的次數。可維護性是區分一個三年歷史的程式碼庫是令人愉悅的還是像個焦油坑的關鍵。為下一位開發者最佳化,他可能六個月後的你就是他。

規則

  • 一個功能,一個地方。 依功能進行封裝(參閱 backend/core/SKILL.md)。單一變更應觸及相鄰的檔案,而非散落在各層。
  • 只在模組邊界使用介面。 在功能內部,使用具體類別即可。介面的存在是為了讓呼叫方能跨越邊界依賴合約,而非為了裝飾每一個類別。
  • 刪除,不要註解掉。 死程式碼與永久的 // TODO 註解會腐爛。Git 會記住;IDE 不需要。
  • 偏好小型純函數。 更容易測試、推論與組合。副作用應置於系統邊緣,而非散落其中。
  • 測試涵蓋行為,而非實作。 重寫內部實作不應破壞測試。若測試失敗,代表測試與錯誤的東西耦合了。
  • 公開 API 需有版本管理。 破壞性變更應透過新版本或功能旗標,絕不能默默重新命名。
  • 依賴注入勝過靜態單例。 靜態方法難以測試且隱藏耦合。將依賴傳入;在測試中模擬它們。
  • 鎖定並定期更新依賴。 提交鎖定檔;透過 Renovate/Dependabot 自動開 PR。落後兩年意味著一次未規劃的兩週遷移。
  • 文件說明「為什麼」,而非「做什麼」。 程式碼顯示做了什麼;註解解釋商業規則、歷史限制、非顯而易見的權衡。
  • 在 CI 中進行 lint、格式與型別檢查。 非建議性,而是阻擋性。人類應討論設計,而非空格。
  • 保持建置綠色且快速。 不穩定或緩慢的測試會被忽略,一旦被忽略,就無法保護任何東西。

危險訊號

  • 單一檔案超過約 500 行,或一個類別有超過約 10 個公開方法——通常代表某個功能想逃脫。
  • 共享的「utils」套件,無人認領的工具函數在其中慢慢死去。
  • 為了讓測試通過而模擬受測物件。
  • 「不要碰那個模組,已經沒人懂它了。」
  • CI 建置時間以十分鐘為單位。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相關技能