返回博客
·AI工具

Claude Code 上手指南:比 CLI 更狠的 AI 编程助手

一线开发者真实使用 Claude Code 的体验:批量重构、legacy代码解析、测试生成,以及权限模式、上下文窗口等实战踩坑经验。

#Claude Code#AI编程助手#开发工具#踩坑经验

# Claude Code 上手指南:比 CLI 更狠的 AI 编程助手

前阵子 Claude Code 上线的时候,我抱着"又一个 AI 编程玩具"的心态试了两周,最后居然成了我日常主力工具。这篇文章不吹不黑,聊聊真实体验、坑,以及怎么把它用到刀刃上。

先说结论:它跟 ChatGPT 不是一回事

很多人第一反应是"这不就是个带代码执行能力的聊天窗口吗"。大错特错。

Claude Code 的核心卖点是**直接操作你的项目文件**。你不需要把代码贴到聊天框,它能在你的终端里读文件、改文件、跑命令,然后告诉你改了什么。这种"边干边说"的模式,比"先描述再粘贴"效率高出一个量级。

安装和基本配置

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

装完之后初始化:

claude

它会问你几个问题:选模型(默认 Claude 3.7 Sonnet)、选工作目录、要不要开 sandbox。我建议直接全选默认,后面想改再改配置文件。

~/.claude/settings.json 是关键,我推荐至少配这些:

{

"model": "claude-sonnet-4-20250514",

"permissionMode": "default",

"enableAllKeyboardShortcuts": true,

"allowedTools": ["Bash", "Edit", "Write", "Read", "Glob", "Grep"]

}

三个我觉得最实用的场景

场景一:批量重构,不用你手动翻文件

有个需求:把项目里所有 lodash.get 的调用换成原生可选链 ?.

之前我会:

  • grep 找到所有匹配行
  • 2. 一个个打开文件改

    3. 跑测试

    现在:

    > refactor lodash.get to optional chaining across the codebase

    它就自己开始干活了——找文件、改代码、跑测试、汇报结果。我坐旁边喝了杯咖啡,回来已经改完 47 个文件,测试全绿。

    注意:它不是每次都改对。有一次它把 lodash.get(obj, 'a.b.c', defaultValue) 改成了 obj?.a?.b?.c ?? defaultValue,但 defaultValue 是个函数调用,它没考虑到惰性求值的问题。所以**改完后一定要 review 关键改动**。

    场景二:解释一段你完全看不懂的 legacy 代码

    上个月接手一个同事离职前写的 Node.js 脚本,几百行,没注释,命名混乱到怀疑人生。我直接让 Claude Code 读完了整个文件,然后问:

    > 解释这个脚本的职责,以及主要的数据流

    它给我画了一个清晰的流程图,标注了每个函数的输入输出。比我自己啃了两天高效多了。

    但要注意:**它解释的是代码"看起来"在做什么,不一定是"实际上"在做什么**。我后来发现它漏掉了一个边界条件——当输入为空数组时,脚本会直接 crash。所以解释完别全信,关键路径自己还是要过一遍。

    场景三:生成测试用例,但别指望它覆盖所有场景

    这个场景我用得最多,但期望值要放低。

    > 给 src/utils/validator.ts 写单元测试,覆盖边界情况

    它能生成一个结构完整的测试文件,覆盖 60-70% 的场景。剩下的 30%——那些真正的边界条件——还是需要你自己补。

    我的 workflow 是:让它生成初稿 → 我 review 并补充遗漏场景 → 跑测试 → 让它根据失败的测试继续修。

    踩过的坑

    坑一:权限模式别开"acceptEdits"

    默认权限模式是 default,每次编辑文件前会问你确认。acceptEdits 模式会直接改,看起来方便,但有一次它把我整个 package.json 的依赖版本改了,还美其名曰"帮你升级到最新兼容版本"。

    我花了十分钟才恢复。这种模式只适合你在完全信任 AI 的小型玩具项目里用。

    坑二:上下文窗口不是无限的

    虽然 Claude 3.7 支持 200k token 上下文,但**项目越大,它的"注意力"越分散**。我有一个 300+ 文件的项目,让它"理解整个项目架构",结果它给的分析只有表面层次——因为它在 200k token 里塞了太多无关信息。

    我的解法是:分模块对话。每次只让它在当前模块的上下文中工作,不要一上来就让它"看整个项目"。

    坑三:它会"过度热情"

    有个习惯让我很不爽:你让它改一个函数,它会顺手把旁边格式不对的文件也格式化一遍。不是坏事,但打断你的工作流。

    解决方法:在 prompt 里明确说"只改我提到的部分,不要动其他代码"。虽然它不一定每次都听话,但比不说强。

    什么情况下别用

  • 关键生产代码:数据库迁移脚本、支付逻辑、权限校验——这些你自己写,或者写完后人工 review,不要直接让 AI 改。
  • 从零架构新项目:AI 擅长在现有代码上迭代,但不擅长做架构决策。它的建议通常"看起来合理",但可能忽略你的业务约束。
  • 不熟悉的技术栈:如果你对自己项目用的框架都不熟,AI 的解释可能会加深你的误解。先自己花一小时理解,再用 AI 加速。
  • 一句话总结

    Claude Code 是个强大的辅助工具,但不是替代你思考的魔法。把它当"效率放大器"——你本身对代码的理解越深,它放大的效果越好。反过来,如果你自己都不懂代码在做什么,AI 只会帮你更快地写出错误的东西。