用 Claude Code 一个月烧掉 2000 刀?这份从入门到精通的教程帮你省点钱

12 阅读1分钟

用 Claude Code 一个月烧掉 2000 刀?这份从入门到精通的教程帮你省点钱

上周看到 HN 上一个帖子——Uber 半年把全年的 AI 预算烧光了,95% 的工程师在用 Claude Code。我第一反应是笑,第二反应是笑不出来。

因为我上个月也是这么过来的。

月初觉得"太香了,写代码从来没这么快过",月底一看账单——2000 多刀。财务小姐姐发了个微笑表情问"这个月你的 API 费用是不是有点高",我回了三个字:我控制。

说正经的。Claude Code 确实强,但它不是那种"装好就能起飞"的工具。用得好,效率翻倍;用不好,钱烧了,代码质量还没保证。

这篇文章我把自己这半年踩的坑、省下的钱、摸索出的最佳实践全盘托出。如果你刚接触 Claude Code,或者已经在用但感觉费用在失控——看下去。


1. 为什么需要 Claude Code?

先搞明白它跟 Copilot 的区别。

GitHub Copilot 是自动补全。你写一个函数名,它补完函数体。你写个 TODO,它生出代码块。它活在编辑器的边栏里,你动一步它跟一步。

Claude Code 是智能体。你告诉它"重构这个模块,把业务逻辑和数据访问分开",它能自己读源码、画架构图、拆任务、逐文件改、跑测试、修复、提交 PR。全程不需要你动一行手。

它有四个核心阶段——Explore 读代码、Plan 出方案、Implement 逐文件改、Verify 跑测试。每一步都要你点头,但它替你干了全部脏活。

所以什么时候该用它? 三个场景最香:

  • 大重构:几百个文件里改接口签名,Copilot 补到你手抽筋,Claude Code 一句话搞定
  • 跨栈任务:前端改个字段要给后端的 migration、API、测试层全链路改完,Claude 可以一起管
  • 老旧代码库:一个没文档的屎山项目,扔给它,它能给你画出模块依赖图

小改一个变量名、改个文案这种事,别用它——杀鸡用牛刀,而且杀鸡也烧你的 token。


2. 环境准备

安装

两种方式,任选一:

方式一(推荐):一键安装脚本

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

零依赖,装完直接用。

方式二(需要 npm):

npm install -g @anthropic-ai/claude-code

适合做版本锁定,或者 CI/CD 里控制版本。

装完后验证:

claude --version
# 输出类似: Claude Code v2.0.60

认证

两种认证方式:

# 方式一:Max订阅用户,自动登录
claude

# 方式二:API Key
export ANTHROPIC_API_KEY=sk-ant-xxxxxxxxx
claude

我个人用 API Key 模式——费用可控,能自己算预算。

CLAUDE.md——最重要的文件

这文件比你想的重要十倍。每次 Claude 启动都先读它,相当于给 AI 上了个"项目说明书"。

# CLAUDE.md

## Project
Next.js 16 + TypeScript 电商平台

## Commands
- dev: npm run dev
- build: npm run build
- test: npm run test
- lint: npm run lint

## Architecture
- App Router + Server Components
- Prisma ORM + PostgreSQL
- Stripe 支付
- Redis 缓存(session + cart)

## Conventions
- 默认用 Server Components
- API Route 全部返回类型化响应
- 业务逻辑写在 lib/ 下,不在 API route 里写
- 测试覆盖核心业务逻辑
- git commit message 用 semantic format

没有 CLAUDE.md 的后果就是——Claude 每次猜你的项目结构,猜对 80%,剩下 20% 够你修半天的。


3. 步骤实操:用 Claude Code 重构一个模块

我拿真实场景举例。本周要重构一个购物车模块——把直接操作数据库改成通过 service layer 调用。

Step 1: 先让 Claude 读代码

cd ~/my-project
claude

然后在 Claude 的 prompt 里输入:

/plan 帮我分析一下 shopping-cart 模块的结构,
我想把 db 操作抽到 cart-service 层,
现有文件有哪些依赖关系?

它不会直接动手改,而是先读代码,输出分析:

📊 分析结果:
- /app/api/cart/route.ts(725行,直接用了 prisma)
- /components/cart/CartPanel.tsx(直接调了 API route)
- /lib/cart.ts(含部分业务逻辑,但跟 db 混在一起)
- 依赖图:[modules: cart, product, user → db: prisma]

计划:
1. 新建 lib/services/cart-service.ts(纯业务+数据)
2. 改 cart.ts 改为只调 service
3. 重构 API route,去掉 prisma 调用
4. 对应的测试文件更新

Step 2: 同意后让它改

同意,按这个计划执行。每个文件改完先给我看 diff。

Claude 会逐文件改,给你看 diff,你点 approve 或 reject。改造完它会自动跑测试:

✅ Changes complete. Running verification:
- npm run lint ✓
- npm run build ✓
- npm run test ✓(58 passed, 0 failed)

Step 3: 提交

/commit -m "refactor: 抽出 cart-service 层,解耦业务逻辑和 DB 操作"

一气呵成。整件事情耗时:从 15 分钟到 3 分钟,前提是你管线好了。


4. 效果截图(文字版)

Claude Code 的终端交互大概是这种感觉:

┌─────────────────────────────────────────────────────────┐
│ claude /your-project (main)                             │
├─────────────────────────────────────────────────────────┤
│ > /plan 分析购物车模块结构                             │
│                                                         │
│ 📊 Analyzing 15 files...                                │
│                                                         │
│ 依赖关系图:                                             │
│   cart/route.ts ──→ prisma                              │
│   lib/cart.ts    ──→ prisma (重复逻辑)                  │
│   CartPanel.tsx  ──→ cart/route.ts                      │
│                                                         │
│ 建议:                                                  │
│   lib/services/cart-service.ts (新建)                    │
│   lib/cart.ts → 改为调 service                          │
│   cart/route.ts → 去 prisma 依赖                        │
│                                                         │
│ 开始执行?(Y/n)                                        │
└─────────────────────────────────────────────────────────┘

每个改动的 diff 清晰展示,你按 yn 就能逐个审批。


5. 常见问题 FAQ

Q1:费用爆炸怎么办?一个月烧了 2000 刀!

我踩过的坑,给你省点钱:

  • 别把 Claude Code 当 ChatGPT 用——闲聊也烧 token
  • 别滥用 sub-agent——一个 5 个子任务并行跑 10 分钟,比你手动写贵 10 倍
  • 多用 /compact——长 session 用 /compact 压缩上下文,缓存命中率更高
  • 设置预算上限.claude/settings.json 里加 "maxCost": 50(每次 session 上限 50 刀)
  • 小任务用 Sonnet,大重构才切 Opus——Sonnet 4.6 足够应付 80% 的日常

我上个月踩的坑就是——8 个 agent 并行跑,每个还在读 20 万行的 monorepo。一晚上 500 刀没了。

Q2:担心代码质量?AI 生成的不敢合?

合理。我的经验是:

  • 大改必须 review:Claude Code 每个 diff 你都得看一眼,别无脑 approve
  • CLAUDE.md 里写好约定:能减少 70% 的"风格不统一"问题
  • 跑测试不是万能的:逻辑错误测试不一定覆盖到,核心逻辑自己过一遍

有一说一,Claude Code 写的 boilerplate 比我干净。但涉及业务逻辑的边界条件——它经常漏。

Q3:Hooks 和 MCP 是啥?必须配吗?

不是必须的,但配了之后体验提升巨大。

Hooks(钩子):每次 Claude 改完文件自动跑 prettier、eslint,不用你手动 fmt 了。

.claude/settings.json 里加:

{
  "hooks": {
    "PostToolUse": "prettier --write {file_path} && eslint --fix {file_path}"
  }
}

MCP(模型上下文协议):让 Claude Code 连你的 Jira、GitHub、数据库。你问"帮我看看这个 issue 对应的 PR",它自己去拉数据。

配置方法:.claude/mcp.json 里加 GitHub MCP server 就行。

Q4:有哪些 slash 命令是必学的?

命令干啥用
/plan大任务先出方案再动手,省钱省心
/compactsession 太长时压缩上下文
/review让 Claude review 自己改过的代码
/commit自动写 commit message + 提交
/init读取项目结构自动生成 CLAUDE.md

Q5:跟 Copilot 比到底哪个好?

实话实说——不冲突

我现在的 workflow:

  • 日常写代码 → Copilot(快,便宜,自动补全)
  • 重构/大改动 → Claude Code(强,贵,但值得)
  • 修 bug → 先 Claude Code /plan 分析,再看 diff

两个一起用,不磕碜。省钱又高效。


总结

Claude Code 是这个时代最接近"你说话,它干活"的工具。但它不是魔法——你得学会驾驭它。

三句话总结:

  1. 大项目大改动用 Claude Code,小事别滥用
  2. CLAUDE.md 是命根子,每次改项目结构都更新它
  3. 预算设好上限,每月看账单前心里有数

如果觉得有帮助,欢迎点赞收藏 ❤️ 更多 AI 工具实战教程,关注我第一时间获取~