$catMANUAL||~28 min

Claude Code 深度体验:终端里的 AI 程序员,用了两周说说真实感受

advertisement

Claude Code 深度体验:终端里的 AI 程序员,用了两周说说真实感受

最近 Anthropic 的 Claude Code 又更新了,加了 Agent Teams、100万 token 上下文、自动记忆这些功能。我之前一直在用 Cursor,偶尔用用 Copilot,但 Claude Code 这种"纯终端"的 AI 编程方式确实让我挺好奇的——没有 GUI,没有侧边栏,就是在命令行里跟 AI 对话,让它帮你干活。

用了两周,踩了不少坑,也确实感受到了一些不一样的东西。这篇文章聊聊我的真实体验,不吹不黑。

Claude Code 到底是什么

先说清楚它不是什么。它不是另一个 IDE 插件,不是另一个代码补全工具。

Claude Code 是一个跑在终端里的 AI 编程 Agent。你在一个项目目录下敲 claude,它就开始工作了。它能读你的文件、改你的代码、跑命令、搜索网页,基本上就是一个"看不见的程序员"坐在你旁边帮你干活。

跟 Cursor 最大的区别是什么?Cursor 是在 GUI 里操作,你看得见它在改哪个文件,可以一行行 accept/reject。Claude Code 不一样——它在终端里跑,你给它一个任务,它自己去探索、规划、实现,中间可能改一堆文件,跑一堆命令。

这种模式的好处是:你可以把一整个功能丢给它,然后去喝杯咖啡。坏处是:你得信任它,因为它改的东西比 Cursor 多得多,而且你看不到实时的 diff。

安装和第一次跑起来

安装很简单,一行命令:

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

装好之后,cd 到你的项目目录,直接敲 claude

bash
1
cd my-project
2
claude

第一次跑会要求你登录 Anthropic 账号。我用的是 Claude Pro 订阅($20/月),基本够用。如果你是重度用户,可能需要 Max 计划($100/月或 $200/月),token 限制更宽松。

我第一次跑的时候犯了个低级错误——在项目根目录没初始化 git 的情况下跑了 claude。结果它报了个警告,说没有 git 仓库可能影响某些功能。后来我 git init 了一下就好了。

另外一个坑:如果你在 Windows 上用,推荐装 Git for Windows,不然 Claude Code 会用 PowerShell 作为 shell,有些命令行为会不一样。

CLAUDE.md:给 AI 写一份"工作手册"

这是 Claude Code 最有意思的设计之一。你可以在项目根目录放一个 CLAUDE.md 文件,Claude 每次启动都会读它。这个文件相当于你给 AI 的"工作手册"——告诉它你的代码风格、常用命令、项目结构等等。

我的 CLAUDE.md 长这样:

markdown
1
# Code style
2
- Use ES modules (import/export) syntax, not CommonJS (require)
3
- Destructure imports when possible (eg. import { foo } from 'bar')
4
- Prefer functional components in React
5
 
6
# Workflow
7
- Run `npm run typecheck` after making code changes
8
- Run `npm test -- --watch` for single test file, not the full suite
9
- Use `npm run lint:fix` to auto-fix lint issues
10
 
11
# Project structure
12
- src/components/ - React components
13
- src/lib/ - utility functions
14
- src/app/ - Next.js app router pages

刚开始我写了一大堆,恨不得把整个 README 都塞进去。后来发现这不是个好主意——CLAUDE.md 太长的话,Claude 会"忽略"你的一些指令。官方建议是:每写一行都问自己"如果删掉这行,Claude 会不会犯错?"如果不会,就删掉。

我精简到大概 30 行之后,效果明显好了很多。Claude 不再纠结于一些无关紧要的细节,专注在真正重要的事情上。

实际使用场景

场景一:修 Bug

这是我觉得 Claude Code 最好用的场景。你给它一个报错信息,它自己去排查。

比如我遇到了一个 TypeScript 类型错误:

bash
1
claude "这个类型错误怎么修:src/lib/api.ts:42 - Type 'string' is not assignable to type 'number'"

它会自己读那个文件,看上下文,找到问题所在,然后给你一个修复方案。比 Cursor 好的地方是:它会主动跑 npm run typecheck 来验证修复是否有效,而不是只给你代码让你自己验证。

有一次更离谱——我给了一个模糊的描述:"登录功能有时候会失败",它居然自己去翻了 src/auth/ 目录下的代码,找到了 token 刷新逻辑的问题,写了个复现测试,然后修好了。整个过程我只说了一句话。

场景二:写新功能

写新功能的时候,我会先用 plan mode:

bash
1
claude --plan "实现一个用户收藏功能,包括前端组件和后端 API"

Plan mode 下 Claude 只会探索和规划,不会改代码。它会问你一些问题,比如"收藏的数据存在哪里?""要不要支持批量操作?"你回答完之后,再让它开始实现。

这个模式比直接让它写代码好太多了。有一次我没用 plan mode,直接让它实现一个搜索功能,结果它用了一个我项目里完全没用过的搜索库,还得我手动回滚。用了 plan mode 之后,它会先看看你项目里用了什么,然后基于现有技术栈来实现。

场景三:代码审查

你可以让它 review 你的代码:

bash
1
claude "review 一下我最近的改动,看看有没有问题"

它会跑 git diff 看你改了什么,然后给你反馈。我一般会加上具体的关注点:"review 一下,重点关注性能和安全问题"。

说实话,它的 review 质量比我预期的高。有一次它指出了我一个 N+1 查询的问题,我自己都没注意到。

场景四:重构代码

重构是 Claude Code 另一个杀手级应用场景。我有一个老项目,用的是 React Class Component,想迁移到 Function Component + Hooks。

手动改的话,大概需要两三天。用 Claude Code,我给了它一个简单的指令:

bash
1
claude "把 src/components/ 下所有的 Class Component 迁移到 Function Component,用 useState 和 useEffect 替换 state 和生命周期方法,保持功能不变"

它花了大概 20 分钟,把 15 个组件全部改完了。我 review 了一下,发现它处理得比我想的要好——不仅做了基本的迁移,还把一些重复的逻辑提取成了自定义 Hook。

不过有一个小问题:它在一个组件里把 componentDidCatch 给删掉了,但没有加对应的 Error Boundary。我发现了之后让它补上,它很快就修好了。

所以教训是:即使是 Claude Code,也不能完全信任。大的重构任务,还是要 review 它的改动。

场景五:写测试

写单元测试是我最讨厌的事情之一。Claude Code 让这件事变得轻松了很多。

bash
1
claude "给 src/lib/utils.ts 写单元测试,覆盖所有边界情况,用 vitest"

它会自己读那个文件,分析每个函数的输入输出,然后生成一套完整的测试用例。我一般会加上一些额外的要求:"测试用例要包括正常输入、空值、边界值、异常输入"。

生成的测试质量还不错,但有时候会漏掉一些业务逻辑相关的边界情况。比如它不知道"用户名不能为空字符串"这个业务规则,除非你在代码里有校验逻辑。

我的做法是:先让它生成一版,然后我自己 review 一遍,补充一些业务相关的测试用例。这样比从零开始写测试快多了。

场景六:调试生产问题

有一次线上出了个 bug,用户反馈说某个页面加载特别慢。我用 Claude Code 来排查:

bash
1
claude "用户反馈 /dashboard 页面加载很慢,帮我排查一下性能问题。看看有没有不必要的重新渲染、大数据查询、或者网络请求的问题。"

它做了这些事情:

  1. 读了 /dashboard 相关的组件代码
  2. 检查了数据获取逻辑,发现有个 API 调用没有做缓存
  3. 检查了组件渲染逻辑,发现有个列表组件在每次渲染时都重新计算排序
  4. 给出了两个优化建议:加 React.memo 和用 SWR 做数据缓存

我按照它的建议改了一下,页面加载时间从 3 秒降到了 0.8 秒。这个效率确实比我自己排查快多了。

配置和自定义

权限模式

Claude Code 有几种权限模式:

  • 默认模式:每次执行危险操作都会问你
  • Plan mode:只探索和规划,不改代码
  • Accept edits:自动接受文件修改,但跑命令还是要确认
  • Yolo mode:全部自动允许(不推荐)

我建议用默认模式或者 Accept edits。Yolo mode 虽然省事,但有一次它跑了个 rm -rf 命令把我一个临时文件夹给删了,虽然不重要,但挺吓人的。

自定义斜杠命令

你可以在 .claude/commands/ 目录下创建自定义命令。比如我创建了一个 /test 命令:

markdown
1
# .claude/commands/test.md
2
运行当前文件的测试用例,如果有失败就修复:
3
1. 找到当前文件对应的测试文件
4
2. 运行测试
5
3. 如果有失败,分析原因并修复
6
4. 重新运行测试确认通过

这样我只需要输入 /test,Claude 就知道该做什么了。

MCP 服务器

Claude Code 支持 MCP(Model Context Protocol)服务器,可以扩展它的能力。比如你可以接入:

  • 数据库查询工具
  • API 测试工具
  • 文档搜索工具
  • 自定义的内部工具

我接入了一个 PostgreSQL 的 MCP 服务器,这样 Claude 可以直接查数据库来调试数据相关的问题。比手动复制粘贴数据方便多了。

费用和订阅选择

Claude Code 的计费方式跟 Claude Pro 订阅绑定:

  • Claude Pro($20/月):每天有 token 限制,大概够处理 3-5 个中等任务
  • Claude Max 5x($100/月):token 限制是 Pro 的 5 倍
  • Claude Max 20x($200/月):token 限制是 Pro 的 20 倍
  • API 按量付费:没有限制,但费用更高

我用 Pro 订阅的话,大概一天能处理 4-5 个任务就到限额了。如果你是重度用户,建议上 Max 计划。

一个省钱的技巧:用 Plan mode 先探索和规划,确认方案之后再用普通模式执行。Plan mode 消耗的 token 少很多,而且能避免"方向错了白花钱"的情况。

跟其他终端 AI 工具的对比

除了 Claude Code,还有一些类似的终端 AI 工具:

Aider:开源的终端 AI 编程工具,支持多个模型(GPT-4、Claude、本地模型)。优点是免费,缺点是能力比 Claude Code 弱一些。

Cursor Agent:Cursor 也有一个 Agent 模式,可以在终端里跑。但它的设计思路还是以 IDE 为主,Agent 模式更像是一个附加功能。

GitHub Copilot CLI:GitHub 也出了一个终端工具,但功能比较基础,主要是命令建议和解释。

OpenAI Codex CLI:OpenAI 的终端 AI 工具,定位跟 Claude Code 类似,但目前还在早期阶段。

我觉得 Claude Code 目前是这个赛道里最成熟的。它的"理解整个项目"的能力最强,而且 Anthropic 在持续更新,功能迭代很快。

跟 Cursor、Copilot 的对比

用了两周之后,我对这三个工具的定位有了更清晰的认识:

Cursor 适合日常编码。它的 Tab 补全很方便,inline diff 看得很清楚,适合一行行地写代码。如果你习惯在 IDE 里工作,Cursor 是最顺手的选择。

Copilot 适合代码补全。它的 autocomplete 是最成熟的,特别是写一些重复性代码的时候,Tab Tab Tab 就搞定了。但它的"理解整个项目"的能力比 Cursor 和 Claude Code 弱。

Claude Code 适合"扔任务"。你给它一个完整的任务描述,它自己去搞定。适合那种"我需要一个功能,你帮我从头实现"的场景。但你得接受它的"自主性"——它可能会用你没想到的方式实现,你需要信任它的判断。

我个人的使用模式是:日常编码用 Cursor,写新功能用 Claude Code,简单补全用 Copilot。三个工具不是互斥的,是互补的。

一些实用技巧

1. 用 @ 引用文件

在 prompt 里用 @ 可以直接引用文件,Claude 会自动读取:

bash
1
claude "看看 @src/components/Header.tsx 有没有性能问题"

这比手动描述"在 src/components/ 目录下有个 Header.tsx"方便多了。

2. 管道输入

你可以把命令输出直接喂给 Claude:

bash
1
cat error.log | claude "分析一下这个错误日志"
2
npm test 2>&1 | claude "测试为什么失败了"

这个在调试的时候特别好用。

3. 子代理(Sub-agents)

Claude Code 可以启动子代理来并行处理任务。比如你要同时修三个 bug,可以让它启动三个子代理分别处理。这个功能在处理大型重构的时候特别有用。

4. 自动记忆

新版本的 Claude Code 支持自动记忆。它会把一些重要的上下文信息保存下来,下次启动的时候自动加载。比如你告诉它"这个项目用 pnpm 不用 npm",它会记住,不用每次都提醒。

5. 浏览器集成

Claude Code 可以控制 Chrome 浏览器。你可以让它打开一个网页,截图,然后跟设计稿对比。做前端开发的时候这个功能挺方便的。

踩过的坑

坑一:上下文窗口溢出

这是最大的坑。Claude Code 的上下文窗口是有限的(虽然新版本支持 100万 token,但实际使用中还是会满)。在一个长会话里,它可能会"忘记"你之前说的指令。

解决办法:定期用 /clear 清空上下文,或者开一个新的会话。官方建议是"一个任务一个会话",不要在一个会话里做太多不同的事情。

坑二:它会"过度优化"

有一次我让它修一个小 bug,结果它不仅修了 bug,还顺便重构了整个文件。重构的质量倒是没问题,但我不想要那么大的改动,还得手动回滚一部分。

后来我学乖了,在 prompt 里明确说"只修这个 bug,不要改其他东西"。

坑三:权限问题

Claude Code 默认会问你是否允许执行某些操作(比如跑命令、改文件)。刚开始我觉得很烦,每次都点允许。后来发现这个设置很重要——如果你全部设为自动允许,它可能会执行一些你不想它执行的命令。

建议是:先用默认的权限模式跑一段时间,熟悉了之后再考虑放宽权限。

坑四:费用问题

Claude Code 是按 token 计费的。一个复杂的任务可能消耗几十万 token,算下来不便宜。我用 Pro 订阅 ($20/月) 的话,大概一天能处理 3-5 个中等复杂度的任务就到限额了。

如果你是重度用户,建议上 Max 计划。或者用 API key 按量付费,但那个更贵。

CLAUDE.md 的进阶用法

除了项目根目录的 CLAUDE.md,你还可以在子目录放 CLAUDE.md,Claude 会在进入那个目录的时候自动读取。比如:

code
1
project/
2
├── CLAUDE.md              # 全局配置
3
├── src/
4
│   ├── CLAUDE.md          # 前端相关配置
5
│   └── components/
6
│       └── CLAUDE.md      # 组件相关配置
7
└── api/
8
    └── CLAUDE.md          # 后端相关配置

这样你可以针对不同模块设置不同的规则。比如前端的 CLAUDE.md 可以写"用 Tailwind CSS,不要写内联样式",后端的可以写"用 Prisma ORM,不要写原生 SQL"。

跟 AI Agent 框架的关系

我之前写过一篇 Claude Agent SDK 的文章,那个是给开发者用的库,让你在自己的程序里调用 Claude 的能力。

Claude Code 本身其实是 Agent SDK 的一个"产品化"版本。它把 SDK 的能力包装成了一个终端工具,让普通开发者不用写代码就能用。

如果你想构建自己的 AI Agent,用 SDK。如果你只是想用 AI 帮你写代码,用 Claude Code。

常见问题

Claude Code 需要联网吗?

需要。Claude Code 是通过 API 调用 Anthropic 的模型,所以必须联网。如果你在没有网络的环境下工作,就没法用了。

不过有个变通方案:你可以用 Claude Code 的 SDK 构建一个本地 Agent,接本地模型。但那就不是 Claude Code 了,是另一个工具了。

它支持哪些编程语言?

基本上所有主流语言都支持。我试过 TypeScript、Python、Go、Rust,都没问题。它的能力取决于底层模型(Claude)对这些语言的理解,而不是 Claude Code 本身对语言的支持。

不过有些语言的体验会更好一些。TypeScript 和 Python 是最顺滑的,因为这两个语言的生态最成熟,Claude 见过的代码最多。

跟 GitHub Copilot Workspace 有什么区别?

GitHub Copilot Workspace 是 GitHub 出的 AI 编程环境,也是基于 Agent 的思路。但它的设计更偏向 GitHub 工作流——从 issue 出发,自动创建 PR。

Claude Code 更通用。它不限于 GitHub 工作流,可以在任何项目里用,做任何编程任务。而且它的"理解整个项目"的能力更强,因为它会主动探索你的代码库。

能用来写生产级代码吗?

能,但需要人 review。我用 Claude Code 写了不少生产代码,质量总体还行,但偶尔会有一些小问题。

我的建议是:把 Claude Code 当作一个高级的"代码生成器",而不是一个可以完全信赖的"程序员"。它生成的代码一定要 review,特别是涉及安全、性能、数据一致性的部分。

会不会泄露我的代码?

这是很多人关心的问题。Claude Code 会把你的代码发送到 Anthropic 的服务器进行处理。如果你用的是 API key,Anthropic 不会用你的数据来训练模型。但如果你用的是免费版或 Pro 订阅,数据可能会被用于改进服务。

如果你的代码涉及商业机密或敏感信息,建议:

  1. 用 API key 按量付费,而不是订阅
  2. 仔细阅读 Anthropic 的隐私政策
  3. 考虑用本地模型的替代方案(比如 Aider + Ollama)

实际工作流示例

让我分享一个我实际的工作流,展示 Claude Code 怎么融入日常开发。

早上:开始新功能

bash
1
# 1. 先用 plan mode 探索
2
claude --plan "实现一个用户通知功能,包括:
3
- 通知列表页面
4
- 未读通知数量显示
5
- 标记已读功能
6
- 实时推送(用 WebSocket)"
7
 
8
# 2. 确认方案后,开始实现
9
claude "按照刚才的方案实现通知功能"

中午:修 bug

bash
1
# 有个用户反馈的 bug
2
cat error.log | claude "用户反馈提交表单时偶尔会报 500 错误,帮我分析这个错误日志"

下午:代码审查

bash
1
# review 今天写的代码
2
claude "review 一下今天的改动,重点关注:
3
1. 有没有安全问题
4
2. 有没有性能问题
5
3. 测试覆盖够不够"

晚上:重构

bash
1
# 重构一个老模块
2
claude "把 src/utils/legacy.js 重构到 TypeScript,保持功能不变,加上类型定义"

这种工作流的好处是:你可以在不同任务之间快速切换,每个任务都用 Claude Code 来加速。但你始终是"驾驶员",Claude 是"副驾驶"。

一些进阶技巧

1. 用 /goal 设置目标

你可以在会话里用 /goal 设置一个目标,Claude 会持续工作直到达成:

bash
1
claude
2
> /goal 所有测试通过,类型检查没有错误

Claude 会反复运行测试和类型检查,直到全部通过。这个在修复杂的 bug 时特别好用。

2. 用 /compact 压缩上下文

如果你的会话变长了,可以用 /compact 让 Claude 总结一下之前的对话,释放上下文空间:

bash
1
claude
2
> /compact

这比 /clear 好,因为 /compact 会保留关键信息,而 /clear 是全部清空。

3. 用 Hooks 自动化

你可以在 .claude/settings.json 里配置 Hooks,在特定事件发生时自动执行命令:

json
1
{
2
  "hooks": {
3
    "postToolUse": [
4
      {
5
        "matcher": "Write|Edit",
6
        "command": "npm run lint:fix"
7
      }
8
    ]
9
  }
10
}

这个配置的意思是:每次 Claude 写完或改完文件,自动跑一次 lint 修复。这样可以保证代码风格的一致性。

4. 用 Remote Control 跨设备

Claude Code 支持 Remote Control,你可以在一台机器上启动任务,然后用手机或另一台电脑查看进度。这个在处理长时间任务时特别方便——你可以启动一个重构任务,然后去沙发上用手机监控进度。

5. 用 Channels 接收通知

你可以配置 Channels,让 Claude Code 把任务完成的通知推送到 Telegram、Discord 或 Slack。这样你不用一直盯着终端,任务完成了会收到通知。

写在最后

用了两周 Claude Code,我的感受是:它确实是目前最强大的终端 AI 编程工具。但"强大"不意味着"万能"。它有自己的局限性——上下文窗口的限制、偶尔的"过度优化"、费用问题。

关键是要找到适合自己的使用方式。有些人喜欢把所有任务都交给 Claude Code,有些人只在特定场景下用。没有对错,只有适不适合。

我个人的建议是:先从简单的任务开始(比如修 bug、写测试),慢慢建立信任,然后再尝试更复杂的任务(比如新功能开发、重构)。不要一上来就让它做太复杂的事情,容易翻车。

后面打算继续试试 Agent Teams 和 GitHub Actions 集成,到时候再写一篇。有啥问题评论区聊。

适合什么人

适合

  • 终端重度用户,习惯命令行工作流
  • 需要处理复杂任务的开发者(不是一行行写代码,而是"实现一个功能")
  • 愿意花时间配置 CLAUDE.md 来优化体验的人
  • 对 AI 有一定信任度,愿意让它自主操作

不适合

  • 习惯 GUI 操作,不喜欢终端的人
  • 需要实时看到每一行改动的人(这种场景用 Cursor 更好)
  • 预算有限,不想花太多钱在 AI 工具上的人
  • 对代码质量要求极高,不信任 AI 自主操作的人

下一步

我打算继续用 Claude Code 一段时间,特别是试试它的 Agent Teams 功能——多个 Claude 实例协作处理一个任务。这个功能听起来很酷,但还没怎么用过。

另外,我打算研究一下怎么把 Claude Code 集成到 CI/CD 流程里。官方支持 GitHub Actions,可以让 Claude 自动 review PR、处理 issue。这个如果搞好了,能省不少人工。

有啥问题评论区聊。

  • 本文写于 2026年6月,基于 Claude Code 最新版本。AI 工具更新很快,文中的功能和定价可能会有变化,建议以官方文档为准。*

advertisement

Claude Code 深度体验:终端里的 AI 程序员,用了两周说说真实感受 — AI Hub