跳至主要内容

封面

工程師的 Claude Code 實戰指南:從零開始到高效開發

本文整合 Anthropic 官方 Best Practices 與社群實戰 Tips,帶你由淺入深掌握 Claude Code。


什麼是 Claude Code?為什麼值得學?

如果你還在用「複製程式碼貼到 ChatGPT,再複製答案貼回去」的工作流程,Claude Code 會讓你大開眼界。

Claude Code 是 Anthropic 推出的命令列工具,它直接活在你的 terminal 裡,能夠讀懂你的整個 codebase、寫入檔案、執行指令、操作 git,甚至幫你開 PR。它不只是個「提示框」,而是一個能主動採取行動的 AI 代理(agentic coding assistant)。

用一句話形容:你告訴它要做什麼,它去搞定

很多從 Cursor、GitHub Copilot 轉過來的工程師都說,用過 Claude Code 之後回不去了。原因不是它比較聰明,而是它的工作方式根本不同——它在你的環境裡工作,而不是你把東西帶去它的環境。


第一步:安裝與基本啟動

安裝 Claude Code 只需要一行:

curl -fsSL https://claude.ai/install.sh | bash

安裝後,進入你的專案目錄,直接輸入 claude 就能啟動。

四種啟動模式

指令情境
claude標準啟動,開始全新對話(互動式)
claude -c快速接回最近一次的對話
claude -r顯示歷史對話列表,含摘要,選擇要接回哪一個
claude -p "..."Headless Mode,非互動式,單次執行,用於自動化

建議新手先從 claude 開始,熟悉基本操作後,-c-r 會成為你每天的好朋友。

Headless Mode(claude -p

claude -p 是 Claude Code 從「個人工具」升級到「團隊基礎設施」的關鍵能力:

  • 非互動式,執行完就結束,不進入對話模式
  • 適合用在 CI/CD、git hooks、自動化腳本
  • 可搭配 --output-format stream-json 輸出結構化 JSON,方便下游程式處理
  • 可搭配 --allowedTools 限制可用工具範圍
# 最簡單的用法
claude -p "review 這個 PR 的安全性問題"

# pipe 資料進去
cat error.log | claude -p "分析這些錯誤,找出最常見的根因"

# 輸出 JSON 給下游處理
claude -p "列出所有 deprecated 的 API 呼叫" --output-format stream-json | your_script.py

# 限制工具範圍(更安全)
claude -p "把 foo.py 從 React 改成 Vue" --allowedTools Edit "Bash(git commit:*)"

第二步:學會在對話中操作

進入 Claude Code 後,它看起來像個聊天介面,但有一些特殊符號和快捷鍵讓你的效率倍增。

三個超有用的符號

@ 指定檔案:輸入 @ 後會顯示檔案列表,支援模糊搜尋,讓你精確告訴 Claude 要操作哪個檔案,不用擔心它讀錯地方。

! 直接執行 shell 指令:有時你只是想快速執行一個指令,不需要 AI 處理,直接用 ! 前綴就能執行 shell 命令。例如 !git status!ls -la

# 加入記憶:當你輸入 # 開頭的訊息,系統會詢問你要存入哪個 CLAUDE.md,讓 Claude 長期記住這段背景知識。例如「# 我們的 API 版本是 v2,請不要使用 v1 的 endpoint」,之後的每次對話它都會記得。

不可不知的快捷鍵

  • ESC — 中斷當前任務。Claude 正在瘋狂編輯檔案但方向不對?按 ESC 立刻停下,不會破壞 session,可以重新下指令
  • ESC ESC(按兩次) — 顯示過去發送的訊息列表,讓你選擇一個重新發送,類似「開分支」的概念,從不同的起點探索
  • Shift+TAB — 切換工作模式

三種工作模式

使用 Shift+TAB 可以在三種模式間切換:

自動接受模式(auto-accept edits):Claude 提議的修改自動核准,適合信任度高、不想每次都確認的場景。速度最快。

規劃模式(plan mode):Claude 只做分析和規劃,不會實際動檔案。在開始寫程式之前,先用這個模式讓它產出設計方案給你審核,是架構討論的好幫手。

危險模式(--dangerously-skip-permissions:跳過所有權限確認,讓 Claude 全速工作。官方文件特別強調這個模式要在有限制的 Docker container 裡使用,不建議在本機直接用。


第三步:設定你的專案大腦 — CLAUDE.md

CLAUDE.md 是整個 Claude Code 生態系中最重要的概念。這個檔案是 Claude 每次啟動對話時必讀的說明書,放對內容,效果立竿見影。

第一次使用時,執行 /init 指令,Claude 會自動分析你的 codebase 結構並產生一份基礎的 CLAUDE.md,再手動精修即可。

放什麼在 CLAUDE.md?

  • 常用的 bash 指令(npm run buildnpm run test 等)
  • 核心檔案與工具函式的位置說明
  • 程式碼風格規範(例如:使用 ES modules 而非 CommonJS)
  • 測試方式與規則
  • Git 工作流程規範(例如:branch 命名方式、merge vs. rebase)
  • 開發環境特殊設定
  • 任何你希望 Claude 永遠記住的事項
# 常用指令
- npm run build: 建置專案
- npm run test: 執行測試
- npm run typecheck: 型別檢查

# 程式碼風格
- 使用 ES modules (import/export),不用 CommonJS (require)
- 盡量用解構語法引入 (import { foo } from 'bar')
- 所有 API 呼叫都走 /src/api/ 資料夾的封裝

# 工作流程
- 每次改完記得跑 typecheck
- 測試優先,盡量跑單一測試而非全套
- branch 命名格式:feature/xxx 或 fix/xxx

CLAUDE.md 的四個層級

根據官方文件,CLAUDE.md 其實有四個層級,由高到低依序套用:

層級位置用途誰能看到
Enterprise policymacOS: /Library/Application Support/ClaudeCode/CLAUDE.md公司統一規範,由 IT/DevOps 部署組織內所有使用者
Project memory./CLAUDE.md./.claude/CLAUDE.md專案共用規範團隊(透過 git)
User memory~/.claude/CLAUDE.md個人全域偏好只有你(所有專案)
Project memory (local)./CLAUDE.local.md個人專案設定只有你(當前專案)

CLAUDE.local.md 會自動加入 .gitignore,適合放沙箱 URL、個人測試資料等不應上傳的設定。

@import 語法

CLAUDE.md 支援用 @ 語法引入其他檔案,最多支援 5 層巢狀:

# 引入其他說明文件
請參考 @README 了解專案概覽,@package.json 查看可用指令。

# Git 工作流程
@docs/git-instructions.md

# 個人偏好(引入自 home 目錄,不會進 git)
@~/.claude/my-project-instructions.md

這讓 CLAUDE.md 保持簡潔,把細節拆到獨立文件裡分開維護。

Monorepo 建議結構

CLAUDE.md 支援多層級繼承,Claude 會自動把沿途讀到的所有 CLAUDE.md 合併進 context,這對 monorepo 非常適合:

root/
├── CLAUDE.md ← 全專案共用:monorepo 工具(nx/turborepo)、CI 指令、跨 package 規範
│ 可用 @import 引入各 package 文件
├── docs/
│ └── git-instructions.md ← 被 @import 引用的獨立說明
├── packages/
│ ├── frontend/
│ │ └── CLAUDE.md ← 前端專用:React 規範、CSS-in-JS、UI 元件慣例
│ ├── backend/
│ │ └── CLAUDE.md ← 後端專用:API 設計規範、DB migration 指令
│ └── shared/
│ └── CLAUDE.md ← shared lib 專用:型別規範、不能有 side effect 等限制
└── CLAUDE.local.md ← 個人設定,自動加入 .gitignore

分層邏輯:

  • 根目錄 放「任何 package 都適用」的內容,例如 pnpm install、branch 命名規則、PR 流程
  • 各 package 只放「這個 package 才有意義」的差異化內容

當你在 packages/frontend/ 啟動 claude,它會同時讀到根目錄與 packages/frontend/ 的 CLAUDE.md,不需要在每個 package 重複寫共用規範。

小技巧:根目錄的 CLAUDE.md 加一行職責邊界說明,例如「packages/shared 只能被其他 package 引用,不能引用 frontend 或 backend 的程式碼」,跨 package 重構時 Claude 就不會犯錯。

其他管理記憶的方式

  • # 快速新增:輸入 # 內容,系統會詢問要存入哪個 CLAUDE.md
  • /memory 指令:在對話中執行,會用系統編輯器開啟記憶檔案,適合一次做大量整理

第四步:上下文管理 — 最關鍵的資源

很多人用 Claude Code 用著用著開始感覺它「變笨了」,原因幾乎都是一樣的:context window 滿了

Claude 的整個對話歷史、讀過的每個檔案、執行過的每個指令輸出,全都塞在 context window 裡。一個複雜的除錯過程,可能幾萬個 token 就燒掉了。當 context 快滿,Claude 開始「遺忘」早期的指令,犯更多錯誤。

兩個關鍵指令

/clear:清除所有當前對話的 context,重新開始。開始一個全新任務之前,養成習慣打 /clear,讓它帶著清爽的頭腦工作。

/compact:壓縮 context,可以附上提示說明要保留哪些重點。注意,壓縮後有可能遺失部分細節、導致後續表現變差,更建議的做法是直接開新的 session。

官方建議:在長對話工作後、切換到新任務前,定期使用 /clear。有些工程師甚至把「每次開始新任務就 /clear」當成強制習慣。


第五步:善用 Think 模式深度推理

Claude Code 支援幾個特殊關鍵字,讓它進入不同深度的思考模式:

層級關鍵字
基礎think
中等think more / think hard
深入think longer / think harder
最大ultrathink

使用方式很直覺,直接在 prompt 裡說「請 think hard,設計這個資料庫 schema」或「ultrathink,分析這個 bug 的根本原因」即可。

重要提醒:更深的思考消耗更多 token,建議根據問題複雜度選擇。簡單任務用 think 就夠,複雜架構設計或難以追蹤的 bug 才用 ultrathink

中文指令「想一想」、「深度思考」也可以被識別,但優先用英文以確保穩定性。


第六步:掌握高效工作流

有了基礎工具知識後,來看幾個 Anthropic 官方推薦的實戰工作流。

工作流一:探索 → 規劃 → 實作 → Commit

這是最通用的工作流,適合大多數功能開發場景:

  1. 探索:告訴 Claude 讀相關的檔案、圖表或 URL,但明確說「還不要寫程式」。這個階段讓它建立完整的 context。
  2. 規劃:請 Claude 制定實作計畫(可以用 think hard 讓它想得更仔細)。計畫確認後,請它寫成 Markdown 文件或 GitHub issue 存檔。
  3. 實作:拿著確認好的計畫,請它動手寫程式。
  4. Commit:請 Claude 寫 commit message 並 commit,需要的話也可以請它開 PR。

前兩步是關鍵。很多工程師跳過規劃直接叫它寫,結果方向跑偏,浪費更多時間。

工作流二:TDD 測試驅動開發

這是 Anthropic 內部最愛的工作流,AI 時代的 TDD 威力加倍:

  1. 請 Claude 根據預期的輸入輸出寫測試,明確說要做 TDD,不要先做 mock 實作
  2. 請它跑測試,確認測試確實失敗
  3. 對測試滿意後,請它 commit 測試
  4. 請 Claude 寫讓測試通過的實作,不允許修改測試,讓它自己跑測試、修改、再跑,直到全部通過
  5. 確認後 commit 實作

提供清晰的「完成標準」是讓 Claude 表現最好的方式,而測試就是最好的完成標準。

工作流三:截圖視覺迭代(UI 開發最愛)

  1. 給 Claude 一個設計稿圖片(拖放或貼上截圖)
  2. 請它實作 UI
  3. 透過 Puppeteer MCP 讓它截圖比對
  4. 請它根據差異迭代修正
  5. 滿意後 commit

Claude 在有視覺目標時表現特別好。第一版可能不完美,但給它 2-3 輪迭代後通常相當接近設計稿。


第七步:進階技巧 — 讓 Claude 更強大

擴充工具能力:MCP

MCP(Model Context Protocol)是讓 Claude Code 連接外部服務的標準協議。常用的有:

  • Puppeteer:讓 Claude 能操控瀏覽器、截圖
  • GitHub MCP:更深度整合 GitHub 操作
  • 資料庫 MCP:直接查詢你的資料庫

在專案目錄加入 .mcp.json 設定檔,整個團隊都能共用這些工具。

自訂 Slash 指令

把重複的工作流程做成 slash 指令,存在 .claude/commands/ 資料夾裡。例如建立 fix-github-issue.md

請分析並修復 GitHub issue:$ARGUMENTS

步驟:
1. 用 gh issue view 取得 issue 詳細內容
2. 理解問題描述
3. 搜尋 codebase 找出相關檔案
4. 實作必要的修改
5. 撰寫並執行測試驗證修復
6. 確認通過 lint 和 type check
7. 建立描述性的 commit message
8. Push 並開 PR

之後只要輸入 /project:fix-github-issue 1234 就能一鍵處理 issue #1234。個人常用指令則存到 ~/.claude/commands/ 讓所有專案都能用。

允許清單(Permissions)

/permissions 指令把常用操作加入允許清單,例如 Edit(允許編輯檔案)和 Bash(git commit:*)(允許 git commit),不用每次都確認,工作流程更流暢。


第八步:多 Claude 並行 — 終極生產力

當你熟悉了單 Claude 工作流後,可以嘗試更強大的多 Agent 模式。

雙 Claude 互審

用第一個 Claude 寫程式,另開一個 terminal 或用 /clear 重置,讓第二個 Claude 審查程式碼。不同的 context 往往能發現不同的問題,效果類似真實的 code review。

Git Worktrees 平行作業

這是 Anthropic 工程師內部的常用技巧:用 git worktree add 建立多個獨立的工作目錄,每個目錄開一個 Claude,同時處理不同任務:

git worktree add ../project-feature-a feature-a
git worktree add ../project-feature-b feature-b

cd ../project-feature-a && claude # Claude A 做 feature A
cd ../project-feature-b && claude # Claude B 做 feature B

# 完成後清理
git worktree remove ../project-feature-a
git worktree remove ../project-feature-b

兩個任務互不干擾,你只需要輪流去確認進度和核准操作。


給新手的建議清單

操作習慣

  • 每次開始新任務前先 /clear,保持 context 乾淨
  • 養成用 ESC 中斷而非 Ctrl+C(後者會直接退出整個程式)
  • @ 精確指定檔案,不要讓它猜
  • 重要決策和設定用 # 記錄到 CLAUDE.md,或用 /memory 做整理

下指令的原則

  • 具體比模糊好。「幫我加測試」遠不如「為 foo.py 新增一個測試 case,覆蓋使用者未登入的邊界情況,不要用 mock」
  • 先規劃再實作,省下來的時間遠比多打一次指令值得
  • 根據問題複雜度選擇 think 層級,不要每次都 ultrathink

品質把關

  • Claude 寫的程式你負責 review,最終責任在你
  • 有測試和 CI 的環境下信任它更多,沒有就要多留意
  • 對話越長越要注意 context 品質,適時 /clear 比用 /compact 更可靠

結語

Claude Code 的學習曲線不在於功能複雜,而在於思維方式的轉換:從「AI 幫我補全程式碼」轉向「AI 是我的協作工程師,我負責方向,它負責執行」。

一開始可能會覺得要打很多字、要設定很多東西。但一旦你的 CLAUDE.md 建立起來,slash 指令設定好,權限調整完,你會發現整個開發體驗有質的飛躍。

從今天開始,打開 terminal,進入你的專案,輸入 claude,然後問它:「你對這個 codebase 有什麼問題嗎?」——你們的旅程就此開始。


參考資料:Anthropic 官方 Claude Code Best PracticesAnthropic 官方 Memory 文件Cash Wu 的 Claude Code Tips