本文根據 Claude Code 官方文檔《Best practices for Claude Code》整理並改寫,核對日期 2026-10-07。官方說明這些做法來自 Anthropic 內部團隊和各類代碼庫的工程師實踐,是「起點」而不是鐵律。
適用於誰
- 已經會用 Claude Code,但覺得它時好時壞、經常需要返工的人;
- 搜「claude code 最佳實踐」「使用技巧」「教學」想系統提升效率的人;
- 想讓 Claude 更長時間自主工作、少盯着它的人。
入門安裝和基本命令詳見本站《Claude Code 中文入門教學(2026):安裝、登入、第一個任務、常用命令》。
結論先說:一切圍繞一個約束
官方開宗明義:大多數最佳實踐都源於一個限制——上下文窗口很快會被填滿,而且越滿表現越差。一次調試或代碼探索就可能產生幾萬 token;上下文快滿時,Claude 可能「忘記」前面的指示或犯更多錯。所以:
- 給 Claude 一個能自己運行的檢查(測試、構建、截圖對比),這是「你得一直盯着」和「你可以走開」的區別;
- 先探索、再計劃、後寫代碼,避免解決錯的問題;
- 提示寫具體:指明文件、場景、約束、參考的現有寫法;
- 主動管理上下文:換任務就
/clear,調研交給子代理; - 儘早糾偏:方向不對立刻按 Esc,糾正兩次還不行就清空重來。
一、給 Claude 一個能驗證的方式
Claude 覺得「看起來做完了」就會停下。沒有可運行的檢查,你就成了唯一的驗證環節,每個錯誤都要等你發現。給它一個返回「通過 / 失敗」的東西,它就會「幹活 → 跑檢查 → 看結果 → 再改」直到通過。
| 場景 | 不好的寫法 | 更好的寫法 |
|---|---|---|
| 給出驗證標準 | 「寫一個校驗電郵的函數」 | 「寫一個 validateEmail 函數。測試用例:[email protected] 為真,invalid 為假,[email protected] 為假。寫完運行測試」 |
| 介面改動做視覺驗證 | 「把儀表盤做得好看點」 | 「[貼截圖] 按這個設計實現。實現後截圖和原圖對比,列出差異並修正」 |
| 解決根因而不是症狀 | 「構建失敗了」 | 「構建報這個錯:[貼報錯]。修復並確認構建成功。解決根本原因,不要把錯誤壓掉」 |
檢查力度可以逐級加強:
- 在一條提示裏:讓它跑檢查並反覆修改(上表的寫法);
- 整個會話:用
/goal設定目標條件,每輪結束後由獨立的評估器複查,沒達成就繼續; - 確定性的關卡:用 Stop Hook 跑檢查腳本,不通過就不讓這一輪結束(詳見本站《Claude Code Hooks 怎麼用:配置示例(完成通知、自動格式化、攔截危險命令)》);
- 第二意見:讓一個子代理在全新上下文裏審查結果,幹活的和打分的不是同一個。
還有一條:讓 Claude 拿出證據(測試輸出、運行的命令和返回、結果截圖),而不是隻說「完成了」。看證據比你自己重跑一遍快。
二、先探索,再計劃,後寫代碼
官方推薦的四步:
- 探索(plan 模式):「閱讀 /src/auth,搞清楚我們怎麼處理 session 和登入」;
- 計劃:「我想加 Google OAuth,要改哪些文件?流程是怎樣的?寫一份方案」,可以按
Ctrl+G在編輯器裏直接改方案; - 實現:批准方案後,「按方案實現,給回調寫測試,運行測試並修復失敗」;
- 提交:「用清楚的說明提交,並開一個 PR」。
但官方也說 plan 有開銷:能用一句話描述的 diff,就跳過計劃直接做。不確定做法、要改多個文件、不熟悉代碼時才最值得規劃。plan 模式的具體操作詳見本站《Claude Code Plan 模式怎麼用:先出方案再改代碼》。
三、提示要具體
| 策略 | 模糊 | 具體 |
|---|---|---|
| 限定範圍 | 「給 foo.py 加測試」 | 「給 foo.py 寫一個測試,覆蓋用戶已登出的邊界情況,不要用 mock」 |
| 指明資訊來源 | 「ExecutionFactory 的 API 為什麼這麼怪?」 | 「翻一下 ExecutionFactory 的 git 歷史,總結它的 API 是怎麼演變成這樣的」 |
| 參考現有寫法 | 「加一個日曆組件」 | 「先看首頁現有組件是怎麼實現的,HotDogWidget.php 是個好例子。照這個模式實現一個可以選月份、前後翻年份的日曆組件,除了項目已有的庫不要引入新庫」 |
| 描述症狀 | 「修一下登入 bug」 | 「用戶反饋 session 超時後登入失敗。檢查 src/auth/ 的認證流程,尤其是 token 刷新。先寫一個能復現問題的失敗測試,再修復」 |
給資訊的方式也很多:用 @文件 直接引用而不是描述位置;直接粘貼或拖入截圖;給出文檔連結;用管道喂數據(cat error.log | claude -p "解釋這個錯誤");或者乾脆讓 Claude 自己用命令、MCP 工具去拿。
探索階段,模糊的提示也有用:「這個文件你會怎麼改進?」可能會發現你沒想到的問題。
四、把環境配好
- CLAUDE.md:用
/init生成,再逐步打磨。只寫 Claude 猜不到、且普遍適用的東西(構建命令、和預設不同的代碼風格、測試方法、分支和 PR 規範、環境怪癖)。對每一行問自己:「刪掉它,Claude 會犯錯嗎?」不會就刪。文件太長,重要規則反而會被淹沒。寫法詳見本站《CLAUDE.md 怎麼寫:最佳實踐、模板與 AGENTS.md 的區別》。 - 權限:用
/permissions預先放行信得過的命令,用/sandbox讓沙箱內的命令免確認。 - 命令行工具:讓 Claude 用
gh、aws、gcloud等 CLI 操作外部服務,這是最省上下文的方式;不認識的工具可以讓它先--help學一下。 - MCP:接入 Notion、Figma、數據庫等外部工具。
- Hooks:必須「每次都執行、沒有例外」的動作用 Hook,它是確定性的;CLAUDE.md 只是建議。
- Skills:領域知識和可複用流程寫成技能,按需加載,不佔每次會話的上下文。
- 子代理:讀大量文件、需要專注的任務交給專門的子代理。
- 插件:有強類型語言的項目,裝一個代碼智能插件,Claude 能精確跳轉定義、改完自動發現類型錯誤。
五、像和同事一樣溝通
- 把它當資深工程師來問:「日誌是怎麼做的?」「新增一個 API 接口要怎麼做?」「這裏為什麼調用 foo() 而不是 bar()?」——官方說這是很有效的新人上手方式。
- 大功能先讓它採訪你:
text
我想做 [一句話描述]。請用 AskUserQuestion 工具詳細採訪我,
問技術實現、介面交互、邊界情況、顧慮和取捨。別問顯而易見的問題,挖我可能沒想到的難點。
問完後把完整的需求規格寫進 SPEC.md。
SPEC 寫好後開一個新會話去實現:上下文乾淨,又有書面規格可對照。好的規格應該自成一體:寫明涉及的文件和接口、明確什麼不做、最後有一個端到端的驗證步驟。
六、管好會話
儘早、經常糾偏:
Esc:立即停下,上下文保留,可以換個方向;Esc連按兩次或/rewind:回退對話和代碼到之前的檢查點;- 「撤銷剛才的改動」:讓 Claude 自己還原;
/clear:不相關的任務之間重置上下文。
官方經驗:同一個問題糾正超過兩次還不對,就 /clear,把學到的東西寫進一條更好的新提示重新開始。乾淨的會話加更好的提示,幾乎總是勝過一個堆滿糾正記錄的長會話。
激進地管理上下文:換任務就 /clear;需要時 /compact 重點保留……;不需要留在上下文裏的小問題用 /btw。詳見本站《Claude Code 上下文滿了怎麼辦:/compact、/clear 與省 token 技巧》。
調研交給子代理:「用子代理調查一下我們的認證系統怎麼刷新 token、有沒有可以複用的 OAuth 工具」。它們在獨立上下文裏讀文件,只把結論帶回來。
大膽試,靠檢查點兜底:每條提示都會建一個檢查點,可以只恢復對話、只恢復代碼或兩者都恢復。但官方提醒:檢查點只記錄 Claude 用編輯工具做的改動,通過 shell 命令或外部程序做的修改不在內,它不能代替 git。
像分支一樣管理會話:用 /rename 起有意義的名字(如 oauth-migration),之後 claude --continue 接着上次,或 claude --resume 從列表裏挑。
七、自動化與並行
- 非交互模式:
claude -p "提示詞"用在 CI、pre-commit Hook、腳本里,可輸出 JSON 或流式 JSON,詳見本站《Claude Code headless 模式:用 claude -p 寫腳本和自動化》。 - 多個會話並行:用 worktree 隔離文件改動(詳見本站《Claude Code worktree 怎麼用:多個會話並行開發不打架》)、桌面版可視化管理多個會話、雲端會話、後台會話等。
- 寫 / 審分離:會話 A 實現限流器,會話 B 在全新上下文裏審查 A 的實現,再把意見交回 A 修改——全新上下文的審查不會偏向自己剛寫的代碼。測試也可以這樣:一個寫測試,另一個寫代碼讓測試通過。
- 批量扇出:大規模遷移可以用
/batch拆給 5~30 個子代理,或者自己寫循環逐個文件調用claude -p,先在兩三個文件上調好提示詞再全量跑。 - 對抗式審查:任務完成前,讓一個子代理對照方案審查 diff。但要提醒審查者只報影響正確性和需求的問題,否則「被要求找問題」的審查者總會找出一些,照單全收會導致過度設計。
八、五種常見失敗模式
| 失敗模式 | 表現 | 解決 |
|---|---|---|
| 大雜燴會話 | 一個任務做到一半問了件不相關的事,又回來,上下文全是無關內容 | 不相關任務之間 /clear |
| 反覆糾正 | 錯了糾正、還錯再糾正,上下文塞滿失敗的嘗試 | 兩次糾正失敗就 /clear,寫更好的初始提示 |
| CLAUDE.md 寫太多 | 太長導致一半規則被忽略 | 狠狠刪減;Claude 本來就做得對的就刪掉或改成 Hook |
| 信任但不驗證 | 實現看着合理,卻沒處理邊界情況 | 一定提供驗證手段(測試、腳本、截圖),無法驗證就不要上線 |
| 無限探索 | 讓它「調查一下」卻不限範圍,讀了幾百個文件 | 縮小調查範圍,或交給子代理 |
常見問題
Q:這些規則必須嚴格遵守嗎?
官方說不是:有時深陷一個複雜問題,就該讓上下文累積;有時任務是探索性的,就該跳過計劃;有時模糊的提示正合適。多觀察什麼時候效果好、為什麼,慢慢形成自己的直覺。
Q:auto 模式適合長時間無人值守嗎?
官方推薦用 auto 模式做不間斷執行:分類器在後台攔截越權、陌生基礎設施和被惡意內容驅動的操作。但它不保證絕對安全,敏感操作仍需人工審查。
Q:CLAUDE.md 和 Skills 怎麼分工?
每次會話都需要的少量規則放 CLAUDE.md;只在特定場景用到的知識和流程做成技能,用到時才加載。技能詳見本站《Claude Skills 是什麼、怎麼裝、推薦哪些》。
參考資料
- Best practices for Claude Code(官方):https://code.claude.com/docs/en/best-practices
- How Claude Code works(官方):https://code.claude.com/docs/en/how-claude-code-works
- Common workflows(官方):https://code.claude.com/docs/en/common-workflows
- Extend Claude Code(官方):https://code.claude.com/docs/en/features-overview
- Checkpointing(官方):https://code.claude.com/docs/en/checkpointing
0 條評論
還沒有評論,來搶沙發~