方格精選

Claude Code:AI寫程式最佳實作指南【全文摘要翻譯】

更新於 發佈於 閱讀時間約 23 分鐘
本篇使用 AI 翻譯濃縮原文,筆者人工校稿完成!
本篇適合正開始準備使用 Claude Code、甚至在觀望的你,官方針對這個工具 Highlight 的幾個重點!如果你還在猶豫,可以先看我的心得
原始文章:Claude Code: Best practices for agentic coding

原始文章:Claude Code: Best practices for agentic coding

原始文章如下:

Claude Code 是一個用於 agentic coding 的命令列工具。本文整理了 Anthropic 官方經實務驗證的技巧與建議,協助開發者更有效地在不同的程式碼庫、語言與環境中使用 Claude Code。

此外,本文也歸納了 Anthropic 內部及外部使用 Claude Code 的有效模式與方法。

這些建議並非放諸四海皆準,而是鼓勵大家將其視為起點,透過不斷嘗試找出最適合自己的方式。

還沒安裝 Claude Code 嗎?快來安裝:https://docs.anthropic.com/en/docs/claude-code/overview


一、自訂初始設定

1.建立 CLAUDE.md

真正生成 Claude.md

> /init​

CLAUDE.md 是 Claude 在啟動對話時會自動讀取的說明檔,非常適合用來紀錄專案相關的關鍵資訊,例如常用指令、核心檔案與工具函式、程式碼風格...,此檔案不限定格式,但要簡潔易讀!

功用條列如下:

  • 常用的 bash 指令
  • 核心文件與函式
  • 程式碼風格指南
  • 測試指令
  • 專案的開發規範(分支命名規則等)
  • 開發環境設定
  • 專案中特殊的行為或警告

通常都放在專案根目錄,但也可以放在像是~/.claude/CLAUDE.md 等位置。

常用放置位置:

  • 專案根目錄(通常放此)
  • 父目錄(適合 monorepo)
  • 子目錄(依需求引入)
  • 家目錄 (~/.claude/CLAUDE.md)

Anthropic 團隊強調, CLAUDE.md 會成為 Claude Prompt 的一部分,因此它的內容品質會直接影響 Claude 回應的精準度。建議定期檢視與優化這份檔案,而不是單純塞入大量內容。

也因此,除了手動更新,也可透過輸入 # 開頭的指令,讓 Claude 自動新增內容到 CLAUDE.md許多工程師習慣在寫程式過程中同步更新這份說明,並一併納入 commit 中,讓整個團隊都受益。Anthropic 團隊也會用 Claude 的 prompt 改寫工具來優化 CLAUDE.md,甚至透過加強語氣(例如加入「IMPORTANT」「YOU MUST」)來提升指令遵守程度。

2.Claude Code 需要一些工具整合,需優先設定

Claude Code 預設採取保守策略,對所有可能改動系統的操作(如編輯檔案、執行 bash 指令或呼叫 MCP 工具)都會要求使用者明確允許

你可以透過幾種方式自訂允許清單,例如:在提示時選擇「Always allow」、使用 /permissions 指令新增允許項目、手動編輯 .claude/settings.json 或使用 --allowedTools CLI 參數。

如果你的專案與 GitHub 整合,建議安裝 GitHub CLI(gh)。Claude 可透過它建立 issue、提交 pull request、讀取評論等操作。若未安裝 gh,Claude 仍可改用 GitHub API 或 MCP server 進行互動。

二、給予 Claude Code 更多工具,讓 AI 變成你的得力助手!

使用 Bash

Claude 不僅能存取你的 shell 環境,也能像人類工程師一樣使用你常用的工具與腳本。它可以善用 bash 指令、自訂工具、REST API,甚至更進階的 MCP 工具系統。若希望 Claude 發揮最大效能,建議在 CLAUDE.md 中補充工具的使用方式,或直接請它執行 --help 查閱說明(摘自 2a)。

使用 MCP

此外,Claude 同時支援作為 MCP server 與 client。你可以透過專案設定、全域設定,或在 repo 中建立 .mcp.json 文件來連接不同 MCP server,讓整個團隊共享像是 Puppeteer 或 Sentry 等自訂工具(摘自 2b)。

使用自定義 / 指令

Claude Code 可以自訂 slash / 指令!

若你的開發流程常常重複某些提示需求,也能將這些提示封裝成 markdown 檔,放進 .claude/commands 目錄中,成為自訂的斜線指令(slash command)

舉例來說,你可以建立一個 /fix-github-issue 指令,讓 Claude 自動拉取特定 issue、分析錯誤、修改程式並建立 PR。

以下範例:

Please analyze and fix the GitHub issue: $ARGUMENTS.

Follow these steps:

1. Use `gh issue view` to get the issue details
2. Understand the problem described in the issue
3. Search the codebase for relevant files
4. Implement the necessary changes to fix the issue
5. Write and run tests to verify the fix
6. Ensure code passes linting and type checking
7. Create a descriptive commit message
8. Push and create a PR

Remember to use the GitHub CLI (`gh`) for all GitHub-related tasks.
  • 自訂斜線指令可以包含特殊關鍵字 $ARGUMENTS 來傳遞指令呼叫的參數。
  • 將上述內容放入 .claude/commands/fix-github-issue.md 中,即可在 Claude Code 中將其用作 /project:fix-github-issue 指令。
    • 例如,您可以使用 /project:fix-github-issue 1234 讓 Claude 修復問題 #1234。同樣,您可以將自己的個人命令新增至 ~/.claude/commands 資料夾中,以便在所有會話中使用這些命令。

三、嘗試常見的工作流程

Anthropic 社群與內部團隊已逐步發展出幾種高效的使用模式:

1.先規劃:探索 → 規劃 → 撰寫程式 → 提交

  • 請 Claude 閱讀相關的檔案、截圖或網址。
    • 可以是抽象提示(如「讀一下 logging 的處理邏輯」),也可以明確指出檔名(如「logging.py」)。
    • 但明確告訴它現在不要編寫任何程式碼。
  • 若問題較複雜,可善用 Claude 的 subagent 功能,將子任務分派出去調查或驗證特定細節。
    • 請 Claude 撰寫解決方案規劃,並使用「think」「think harder」等指令進入延伸思考模式。(官方表示: "think" < "think hard" < "think harder" < "ultrathink." 每個級別都會逐步為 Claude 分配更多推理 token 花費。)
    • 完成規劃後,要求 Claude 在程式碼中實現其解決方案 。
    • 完成後提交程式碼並建立 PR,並請它補充 README、changelog 等說明文件。
編按:subagent 使用可參考,「use subagent to perform code review, pay attention to ....」
步驟 1~2 「探索、規劃」至關重要——如果沒有這些步驟,Claude 往往會直接開始編寫解決方案。雖然有時你希望這樣做,但讓 Claude 先進行研究和規劃,可以顯著提高需要深入思考的問題的效率。

2.測試先行:測試,提交(迭代)

這是 Anthropic 最喜歡的工作流程

透過單元測試、整合測試或端到端測試輕鬆驗證的變更。

  1. 請 Claude 根據預期的輸入與輸出組合撰寫測試案例。要特別強調這是進行 test-driven development(TDD),以避免 Claude 產生虛構的 mock 實作,即使是尚未存在於程式碼中的功能也一樣。
  2. 執行測試並確認其失敗。這階段非常關鍵,務必明確告訴 Claude 暫時不要撰寫任何實作程式碼,只需確認測試尚未通過。
  3. 當你對測試內容感到滿意後,請 Claude 將測試提交。
  4. 要求 Claude 撰寫實作程式碼,目標是讓剛剛的測試通過。請明確要求它不要修改測試本身,並持續迭代直到所有測試都成功。通常 Claude 會進行數輪修正程式碼、執行測試、再修正的循環。
    • 在這個階段,也可考慮請另一個 Claude(subagent)獨立檢查是否出現過擬合情況,確認其實作沒有僅針對測試資料做出特化解。
  5. 當你對實作結果滿意後,請 Claude 提交正式程式碼。

這種流程在 Claude 擁有明確對照標的時效果最佳,例如 UI mockup、測試案例、或明確輸出格式等。

編按:可能是程式開發經驗不多,但這樣用AI的方式我覺得很酷!

3.寫程式 -> 截圖(迭代)

與上述第二方法雷同,只是提供 Claude Code 更多視覺參考(可使用截圖、MCP 等工具輔佐)。

4.安全 YOLO 模式(Safe YOLO mode)

如果你想讓 Claude 自動完成整個任務、不被中斷,也可以使用 --dangerously-skip-permissions 參數跳過所有許可確認流程。這個模式特別適合處理像是自動修復 lint 錯誤、產生樣板程式碼(boilerplate code)等重複性高、風險較低的任務。

不過,讓 Claude 自由執行任意指令也伴隨風險,包括資料遺失、系統損壞,甚至可能因提示注入攻擊(prompt injection)而造成機密外洩。

因此,若要使用 YOLO 模式,建議務必將 Claude 限制在無網路的容器中執行,例如搭配 Docker Dev Container,最大程度降低風險。

5.Codebase Q&A

當你剛接手一個新專案時,Claude Code 可以成為你的最佳導覽員。你可以把它當作一位熟悉此程式的同事,問出所有你在 pair programming 時會提的問題。例如:

  • Logging 機制是怎麼設計的?
  • 要怎麼新增一個 API endpoint?
  • async move { ... }foo.rs 第 134 行做了什麼?
  • CustomerOnboardingFlowImpl 處理了哪些.....?
  • 第 333 行為什麼是呼叫 foo() 而不是 bar()
  • baz.py 第 334 行在 Java 中會怎麼寫?

Anthropic 團隊將 Claude 的這種使用方式作為工程師熟悉新專案的標準流程,它不僅大幅縮短上手時間,也減輕了資深同仁的協助負擔。你無需任何特殊提示,只要直接問,Claude 就會自主在程式碼中尋找答案。

6.Git 操作輔助

Anthropic 工程師有超過 90% 的 Git 任務都是透過 Claude 完成的,包含:

  • 查詢 Git 歷史:如「哪些變更被納入 v1.2.3?」「這段功能是誰維護的?」「這個 API 為什麼是這樣設計?」等等。
  • 撰寫 commit message:Claude 會自動分析你修改的內容與上下文,產出精確且具描述性的訊息。
  • 處理進階 Git 操作:如還原特定檔案、解決 rebase 衝突、比對與移植 patch 等操作。

在與 GitHub 整合的場景中,Claude 也能處理多數常見操作,包括:

  • 建立 PR:Claude 能理解 pr 這類縮寫,並根據差異與上下文撰寫合適的 commit message。
  • 一鍵解決 review 留言:你只需告訴 Claude 修正評論,它會修改後直接推回對應的 PR 分支。
  • 協助處理建置失敗、Linter 警告。
  • 分類與標註 open issues:你可要求 Claude 逐一檢視並標記 GitHub issues,節省 triage 時間。

這些功能能有效降低你記憶 CLI 指令的負擔,並加速日常協作。

7.Jupyter Notebook 協作

Anthropic 的研究人員與資料科學家也廣泛使用 Claude 協助閱讀與編輯 Jupyter Notebook。Claude 不僅能理解 notebook 內容,也能解析其中的圖片輸出,提供快速的互動體驗。

建議你在 VS Code 中同時開啟 Claude Code 與 .ipynb 檔案,讓 Claude 能針對內容直接給出分析與建議。你也可以請它幫忙整理 notebook 格式、調整視覺呈現,讓輸出更適合對外展示。尤其是明確說明希望結果「美觀一點」,能幫助 Claude 更聚焦於人類閱讀體驗。

優化工作流程

想要讓 Claude 發揮最佳效能,使用者本身的指令與上下文給法也很重要。以下是幾個經過驗證的優化技巧:

說得越清楚越好

Claude 的成功率會隨著指令具體程度而提升,特別是在第一次嘗試時。清楚說明需求,能減少後續反覆修正的時間。

Claude 雖然能理解語意,但並不能讀心。越具體的指令,越能讓結果符合你的預期。

給 Claude 看圖 Claude 對圖片與圖表的理解能力很強

  • macOS 使用 cmd+ctrl+shift+4 擷取螢幕並 ctrl+v 貼上(注意:不是 cmd+v)
  • 拖拉圖片至輸入框
  • 提供圖片檔案路徑

這對於 UI mockup 參考或資料圖表的分析與除錯特別有效。即使未提供圖片,也建議明確說明「輸出需有視覺吸引力」,Claude 才會更注重美觀。

指定要參考的檔案

使用 tab 鍵自動補齊檔案或資料夾路徑,幫助 Claude 找到正確位置修改或分析。

貼上網址讓 Claude 閱讀

提供具體網址讓 Claude 抓取內容閱讀。若你常查閱同一網域的內容,可用 /permissions 指令將該網域加入白名單。

及早糾正 Claude 的方向

雖然 Claude 支援 auto-accept 模式(shift+tab 切換),但效果最好還是搭配使用者積極指導。

以下四個功能有助於糾正方向:

  1. 請 Claude 先規劃解法,並明說「不要先寫程式」。
  2. 使用 Esc 鍵隨時中斷 Claude 的操作(包含思考、工具呼叫、編輯),保留上下文方便你修改指令。
  3. 雙按 Esc 回到歷史訊息,編輯前一次提示並重新嘗試。
  4. 請 Claude 撤銷變更,常與步驟 2 搭配使用。

雖然 Claude 有時一次就解對問題,但這些調整工具通常能加速達成理想解法。

用 /clear 清除上下文

長時間使用 Claude 時,記憶上下文的視窗可能塞入太多內容,導致干擾與效能下降。每完成一個任務就使用 /clear 重置上下文,是維持穩定表現的好習慣。

使用清單與草稿頁協助複雜任務

對於步驟繁多的任務(如程式碼搬移、大量 lint 修正、複雜建置流程),可以讓 Claude 使用 Markdown 檔或 GitHub issue 作為 checklist 與 scratchpad:

  • 請 Claude 執行 lint 指令並將錯誤寫入 Markdown 清單(包含檔案與行數)
  • 接著依序處理,每解決一個問題就打勾確認,再進行下一個

使用 headless 模式

Claude Code 支援 headless 模式,適用於非互動式環境,如 CI、pre-commit hook、自動化建置腳本等情境。啟用方式是在執行命令時加上 -p 搭配 prompt,並可加上 --output-format stream-json 來獲得串流式 JSON 輸出。

請注意,headless 模式不會在 session 間保留狀態,因此每次執行都需要重新觸發設定。

claude -p "explain this function"
  • 用於 issue 自動分類與標註(Issue triage):當你的 GitHub repo 中產生新 issue 時,可以透過 Claude 的 headless 模式自動處理。例如 Anthropic 的 Claude Code 公開 repo 就是這樣運作:一旦偵測到新 issue,就會請 Claude 閱讀內容並自動標註合適的 labels。這樣的流程可以嵌入 GitHub Actions 等自動化流程,讓 Claude 成為你 issue 管理的第一道防線。
  • 當作語意型 Linter 使用:除了標準 Lint 工具會抓的格式錯誤外,Claude 還能提供主觀判斷的語意層級建議,例如:拼字錯誤、陳舊註解、函式或變數命名不清、可能誤導的註解或文件。

多個 Claude Code 同時運作!

實際上,最強大的應用之一就是「平行運行多個 Claude 實例」。這能讓你在不同任務之間拆分上下文、提升處理效率,甚至模擬「團隊合作」。

區分角色,平行協作

你可以讓一個 Claude 撰寫程式,另一個 Claude 驗證或測試它的輸出:

  • Claude A 撰寫程式碼
  • 使用 /clear 開新終端或第二個 Claude
  • Claude B 閱讀並審查 Claude A 的程式
  • Claude C 綜合 Claude A 的程式與 Claude B 的回饋,進行優化修改

你也可以讓 Claude A 撰寫測試,Claude B 寫出通過測試的實作,再讓 Claude C 驗證兩者之間的契合。這種上下文隔離能大幅減少錯誤與過擬合。

多重 repo checkout 加速任務並行

Anthropic 工程師常會為大型專案開三至四個不同的 git checkout,並分別在不同資料夾中開啟 Claude,各自負責不同任務。

實際流程如下:

  • 建立 3~4 個專案資料夾,各自 git checkout
  • 在單獨的終端選項卡中打開每個資料夾
  • 在每個資料夾中啟動 Claude 並執行不同的任務
  • 分配任務、交錯處理、審核 Claude 的請求與輸出

使用 git worktrees 取代多份 clone

如果你希望更輕量的方式,可以使用 git worktree

git worktree可讓您從相同倉庫檢出多個分支到不同的目錄。每個worktree都有自己的工作目錄,其中包含相互隔離的文件,同時共用相同的 Git 歷史記錄和參考日誌。

  • 建立工作樹 : git worktree add ../project-feature-a feature-a
  • 在每個工作樹中啟動 Claude : cd ../project-feature-a && claude
  • 根據需要建立其他工作樹 (在新的終端選項卡中重複步驟 1-2)

例如你可以讓一個 Claude 改寫登入機制,另一個同時處理資料視覺化元件。兩者互不干擾,也不會發生合併衝突。

Tips:

  • 使用一致的命名規則來管理 worktree 目錄
  • 建議每個 worktree 搭配一個終端視窗與 IDE 視窗
  • Mac 使用 iTerm2 可設定通知提醒 Claude 等待互動
  • 任務結束後可用 git worktree remove 清理乾淨

結合 headless 模式打造自動化系統

透過 claude -p 可以將 Claude 程式化整合進你的大型任務流程。常見模式有:

1.分散式任務(fanning out)

這種方式特別適合大規模轉換或分析任務,例如分析數百筆 log、轉換上千個 CSV、或批次修改架構:

  • 首先請 Claude 幫你寫一段腳本,列出所有待處理項目(如需轉換的 2000 個檔案)
  • 接著撰寫迴圈腳本,依序將任務指派給 Claude,例如:
claude -p "請將 foo.py 從 React 轉為 Vue,完成後務必回傳 OK 或 FAIL" --allowedTools Edit Bash(git commit:*)
  • 可重複執行調整 prompt 與工具設定,直到滿意為止

2.串接資料管線(pipelining)

將 Claude 的輸出直接串給下一步工具或腳本,可作為大型資料處理流程的一部分:

claude -p "分析 sentiment 並以 JSON 回傳" --json | jq '.sentiment' | ./your_downstream_task
    • 適合文字摘要、CSV 分析、模型回饋等任務

最佳化技巧

  • 建議在開發階段使用 --verbose 除錯
  • 上線環境建議移除 verbose 以避免干擾其他程序
  • 可結合 bash loop 或 job queue 系統如 xargsGNU parallel,進一步提高併發度

其他參考資料

Claude 官方文件:常見流程

ihower 條列整理相關文件


留言
avatar-img
留言分享你的想法!
維那思-avatar-img
2025/07/07
感謝分享~已收藏~
avatar-img
CT
76會員
88內容數
加入沙龍追蹤 CT 更多文章!
CT的其他內容
2025/06/19
本文將介紹一系列 Claude Code 安裝、初步使用與一些「你必須要知道」且「很多人不知道」的功能! 將 Claude Code 融合在 VS Code / Cursor... 中!(本文以 Cursor 為例) 安裝在 Windows 可能會遇到的問題 安裝 目前僅支援 Mac, Li
Thumbnail
2025/06/19
本文將介紹一系列 Claude Code 安裝、初步使用與一些「你必須要知道」且「很多人不知道」的功能! 將 Claude Code 融合在 VS Code / Cursor... 中!(本文以 Cursor 為例) 安裝在 Windows 可能會遇到的問題 安裝 目前僅支援 Mac, Li
Thumbnail
2025/05/24
製作活動彙整平臺,整合LINE Messaging API、Google試算表、App Script及OpenAI API,解決活動資訊散落及填寫活動繁瑣的痛點。簡述系統架構、開發細節、踩坑經驗及未來優化方向,包含技術選項、API使用、模型選擇、除錯技巧等,並分享如何有效利用LLM提升開發效率。
Thumbnail
2025/05/24
製作活動彙整平臺,整合LINE Messaging API、Google試算表、App Script及OpenAI API,解決活動資訊散落及填寫活動繁瑣的痛點。簡述系統架構、開發細節、踩坑經驗及未來優化方向,包含技術選項、API使用、模型選擇、除錯技巧等,並分享如何有效利用LLM提升開發效率。
Thumbnail
2025/05/24
利用 Google Apps Script 串接 LINE 聊天機器人和 OpenAI,打造每日定時傳送鼓勵訊息、提供對話的自動化系統。文章分享開發過程中的心得和遇到的問題,如 LINE Messaging API 如何僅針對特定群組回訊、App Script 除錯、及 OpenAI費用考量。
Thumbnail
2025/05/24
利用 Google Apps Script 串接 LINE 聊天機器人和 OpenAI,打造每日定時傳送鼓勵訊息、提供對話的自動化系統。文章分享開發過程中的心得和遇到的問題,如 LINE Messaging API 如何僅針對特定群組回訊、App Script 除錯、及 OpenAI費用考量。
Thumbnail
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
程式設計與技術能力 在現代社會中的重要性越來越明顯,尤其是在人工智能(AI)和自動化技術迅速發展的背景下。理解編程語言,如Python、R等,以及熟悉相關技術架構和工具,能夠幫助個人在這樣的環境中更好地工作。這種能力不僅對技術專業人士至關重要,也對非技術領域的人士日益重要,因為基礎的程式設計知識已
Thumbnail
程式設計與技術能力 在現代社會中的重要性越來越明顯,尤其是在人工智能(AI)和自動化技術迅速發展的背景下。理解編程語言,如Python、R等,以及熟悉相關技術架構和工具,能夠幫助個人在這樣的環境中更好地工作。這種能力不僅對技術專業人士至關重要,也對非技術領域的人士日益重要,因為基礎的程式設計知識已
Thumbnail
網址:https://gadget.chienwen.net/x/text/articlecut 這個網頁裡面有許多小工具, 但感覺現在有很多被 AI 取代掉的東西, 推薦大家可以來用看看~
Thumbnail
網址:https://gadget.chienwen.net/x/text/articlecut 這個網頁裡面有許多小工具, 但感覺現在有很多被 AI 取代掉的東西, 推薦大家可以來用看看~
Thumbnail
這篇文章描述作者如何利用 AI 技術(如 ChatGPT)來輔助撰寫文章的過程。作者詳細拆解了自己的寫作流程,並闡述了每個環節中如何使用 AI 來提高效率。文章強調 AI 在工作流程中所帶來的改變,並指出要適應這種改變需要一定的時間和練習。
Thumbnail
這篇文章描述作者如何利用 AI 技術(如 ChatGPT)來輔助撰寫文章的過程。作者詳細拆解了自己的寫作流程,並闡述了每個環節中如何使用 AI 來提高效率。文章強調 AI 在工作流程中所帶來的改變,並指出要適應這種改變需要一定的時間和練習。
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
Thumbnail
利用文字紀錄,明確寫下自己的採購項目......
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
這篇文章分享如何透過免費電子郵件課程提供價值,建立信任,並引導訂閱者購買付費產品。透過豐富內容、獨特風格,以及AI的幫助,讓你的需求看起來更具吸引力。
Thumbnail
這篇文章分享如何透過免費電子郵件課程提供價值,建立信任,並引導訂閱者購買付費產品。透過豐富內容、獨特風格,以及AI的幫助,讓你的需求看起來更具吸引力。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News