一、Claude Code基础使用说明
终端从来不是我的最爱。我只掌握了足够应付日常的bash命令,也能熟练使用常用的git指令,但我始终更偏爱VS Code这类插件丰富、功能强大的IDE(这也很合理,毕竟我最擅长的是前端开发)。
Claude Code最初仅支持终端CLI模式,而我现在已经习惯了在一个终端窗口运行它,同时打开VS Code——这样我可以实时查看文件变更、手动运行开发服务器或测试用例,还能及时指出Claude可能忽略或一笔带过的语法检查和TypeScript错误。
注:自Claude Code推出以来,Anthropic团队也发布了原生IDE扩展,让它可以在你常用的开发工具中运行。不过我尝试过VS Code版的Claude扩展后,还是更喜欢将它放在独立的终端窗口中使用。对我来说,扩展偶尔会出现异常崩溃或陷入思考循环的问题,而且响应质量似乎也不如终端版本。当然这只是我的个人体验,并没有可验证的数据支持。
接下来,我将把摸索出的技巧分门别类进行介绍。这并非一份详尽的清单,但结合使用这些方法,能让我在享受Claude带来的生产力提升的同时,始终掌控最终的代码结果。希望这些技巧也能帮助你优化Claude的使用体验,因为只要用对方法,它确实能成为编程的强大助力。
注:本文中交替使用的“Claude”和“Claude Code”,均指运行在终端中的Claude Code CLI工具,而非Claude桌面应用。
二、上下文为王:给Claude充足的信息
当Claude Code充分了解要解决的问题和现有代码库的上下文时,它给出的解决方案质量会有质的飞跃。
1. 在项目中添加CLAUDE.md文件
CLAUDE.md是Claude会自动读取的特殊文件,每次启动新会话时,Claude都会将其内容纳入上下文。你可以在这个文件中包含以下信息:
- 项目整体概述、架构设计和技术栈
- 常用的开发/bash命令和工作流程
- 代码风格指南和规范
- 测试说明和运行方式
- 其他需要Claude记住的重要信息
将这些信息整理在一个Markdown文件中,方便随时修改和更新。将其提交到代码仓库后,团队所有成员使用Claude Code时都能获得统一的基础上下文。
CLAUDE.md文件可以放在仓库根目录、特定子目录(适用于monorepo项目),甚至是你电脑的主目录(会应用到所有Claude会话)。你可以在Claude Code中运行/init命令,快速生成一个基础的CLAUDE.md模板,再根据项目需求进行完善。
例如,在我的一个项目中,根目录的CLAUDE.md文件介绍了应用的整体功能,而backend/和frontend/目录下的CLAUDE.md文件则分别说明了前后端的技术栈、重要npm命令、测试规范、代码组织方式和PR提交规范等。
编写这些文件时,保持内容简洁易懂即可,同时要记得定期让Claude重新读取并更新文件内容,让它始终与项目最新状态保持一致。
2. 复制粘贴所有相关内容给Claude
当我发现可以将各类内容直接粘贴到Claude Code的终端后,我就开始大量使用这种方式为它补充上下文。
我会手动测试Claude实现的功能,将浏览器中出现的异常样式、布局问题、控制台反馈和错误信息,或是运行异常的代码片段复制粘贴给Claude;如果VS Code中出现大量TypeScript或语法检查错误,或是GitHub Action工作流执行失败,我也会直接复制错误文本粘贴进去;甚至当我需要Claude参考某个网页的信息或示例时,也可以粘贴网页链接并让它读取内容。
Claude仅通过文本信息就能很好地推断出可能的问题和解决方案,这种方式能极大提升沟通效率。
3. 使用/resume命令恢复之前的对话
很多时候,我完成一个新功能、提交并合并拉取请求后,接下来要开发的功能往往是基于之前的工作。这时使用Claude的/resume命令,就能回溯并继续之前的对话。
只要上下文窗口没有被填满并压缩,Claude就会保留之前的所有上下文,帮助我快速扩展新功能。在终端中启动Claude Code后输入/resume命令,Claude会列出当前仓库中所有的历史会话,包括对话时间、消息数量以及对应的功能分支名称,方便你快速找到需要恢复的会话。
这个功能在你间隔一段时间后重新接手相关功能时特别有用——Claude可以为你快速总结之前的对话内容,帮你更快地进入开发状态。
4. 保持Claude的会话聚焦
虽然我们强调要给Claude充足的上下文,但同时也要保持单个会话的专注度。不要在同一个Claude会话中处理多个不相关的任务或功能。
Claude在处理单个功能时已经需要兼顾代码编写、测试更新、语法规范和文档要求等多个方面,中途切换任务会像打断开发者的深度思考一样,严重影响它的工作质量。此外,会话中不相关的历史内容会占用宝贵的上下文窗口,导致Claude遗忘当前任务的关键信息。
如果你完成了一个任务并准备开始新的工作,可以选择:
- 打开一个新的终端窗口,启动全新的Claude Code会话
- 在当前会话中使用
/clear命令,清空对话历史并释放上下文空间
专注的会话能让Claude更好地保持方向,减少修改无关文件的情况。
5. 用代码示例引导Claude
我发现,当Claude有现有代码作为参考时,它能更好地遵循项目的编码规范。这一点超出了CLAUDE.md文件中代码风格指南的作用。
例如,如果你的项目有特定的错误处理、请求日志或测试编写方式,直接指向相关的示例文件,让Claude模仿这些模式编写新功能的代码,通常会得到更好的结果。
需要注意的是,不要指望Claude能自动识别并使用项目中的辅助函数,也不要期望它能主动避免代码冗余。你需要明确指出哪些辅助函数可以使用,并要求它精简重复代码。
对于全新的项目,你需要先制定好基础的架构决策和代码模式,再让Claude基于这些模式进行开发,这样才能构建出健壮、可扩展、易维护的代码库。
三、善用Claude的规划能力
和普通开发者一样,当Claude提前做好规划时,最终产出的代码质量会更高。
1. 触发扩展思考模式
Claude拥有“扩展思考模式”,能获得额外的计算时间,更全面地评估备选方案,更深入地思考问题和解决方案。你可以通过以下指令触发不同深度的思考模式:
- “Think”(思考)
- “Think hard”(深入思考)
- “Think harder”(深度思考)
- “Ultrathink”(极致思考)
通常,当我向Claude反馈测试中遇到的bug时,它最快给出的解决方案往往不尽如人意——它倾向于选择最简单的修复方式,却忽略了bug的细微差别,或是解决方案对系统其他部分的影响。
这时,我会告诉它bug仍然存在,并让它“think”或“think hard”重新解决问题。触发扩展思考模式后,Claude会花费更多时间分析问题:它会搜索仓库中与bug相关的文件,可能运行一两个bash命令,最终给出更周全、更可靠的解决方案。
如果你想查看Claude的思考过程,可以在终端中按CTRL+O展开压缩的思考块,看到它详细的分析步骤和决策逻辑。我个人很少使用“Ultrathink”模式,但前几个层级的思考模式已经能带来显著的效果提升。
2. 让Claude先制定实施计划
另一个对我帮助极大的技巧是,在新会话或新功能开始时,让Claude先制定实施计划。
通常我会在启动新会话后,告诉Claude我要开发的功能需求,指向相关的现有代码、文档和其他参考信息,然后让它思考并制定实现方案。这样做有两个好处:
- 能自动触发Claude的扩展思考模式,几乎总能得到更好的最终结果
- Claude会生成一份清晰的任务清单,我可以提前审核并提出修改意见,在它开始编写代码前就达成共识
当我对计划满意后,会让Claude将其保存为项目中的Markdown文件。这样一来,Claude在开发过程中可以随时参考这份计划(尤其是当上下文窗口被填满需要压缩对话时),我未来也能通过这份文档快速回顾该功能的实现细节。
在最终代码验证通过后,我还会让Claude重新审核计划文档,确保所有约定的任务都已完成,并更新开发过程中发生的变更。起初我会在功能完成后删除这些文档,但现在我会将它们保存在项目的/docs文件夹中,作为额外的项目上下文资料,方便未来自己或Claude参考。这些文档在提交GitHub拉取请求时也非常有用,可以清晰地说明修改的文件和完成的工作。
注:Anthropic在2025年6月专门推出了Claude Code计划模式,用于在不修改代码的情况下进行调研、分析和制定实施计划。你可以在Claude Code会话中按两次Shift+Tab手动激活该模式。我使用过几次,发现它和我手动让Claude制定计划的效果差别不大,但如果你有相关需求,也可以尝试一下。
四、借助MCP工具让Claude自助解决问题
就像开发者会不断打开浏览器标签页进行调研、测试、阅读文档一样,你也可以通过模型上下文协议(MCP)工具赋予Claude类似的能力,让它能自主解决更多问题。
MCP是一个开源的AI工具集成标准,允许Claude Code和Cursor等AI代理连接数百种外部工具和数据源,大幅提升工作效率。目前已经有大量可用的MCP服务器,其中我个人受益最多的几个通用工具包括:
- context7 MCP:提供最新、版本特定的文档和代码示例。如果你使用的是最新版本的前端框架,而Claude的训练数据还停留在旧版本,就可以让Claude“使用context7查询最新文档”来指导开发。
- Playwright MCP:提供Playwright的浏览器自动化能力,让Claude可以自主打开网页、截图并检查浏览器输出,无需你手动复制粘贴浏览器信息。
- Chrome DevTools MCP:让Claude可以控制和检查实时运行的Chrome浏览器,比Playwright更进一步,能访问DevTools控制台、网络标签页,甚至使用Lighthouse进行性能测试。
添加这些MCP服务器非常简单,它们的GitHub README文件中都有详细的安装说明。通常只需在Claude会话中运行类似以下的命令即可:
claude mcp add playwright npx @playwright/mcp@latest
安装完成后,可能需要重启终端并恢复会话才能生效。之后你可以使用/mcp命令查看所有当前激活的MCP服务器。当需要使用某个工具时,只需直接指令Claude即可,比如“使用context7查询React 19的新特性文档”或“使用Playwright检查本地应用的页面渲染效果”。
五、在不熟悉的领域借助Claude的专业能力
虽然Claude不擅长从零开始搭建整个项目,但它在更新文件、解释代码以及处理你不熟悉的编程语言方面非常有用,因为它接受过大量不同编程语言的训练。
1. 与Claude结对编程,边做边学
Claude可以成为你探索新代码库或不熟悉技术领域的好向导。
例如,最近我需要更新项目中的Terraform基础设施文件,但我对Terraform并不熟悉。我告诉Claude我需要完成的任务(更新生产环境中的URL配置),在它帮助我修改文件的过程中,我不断提问,了解了Terraform的工作原理以及哪些文件可以安全修改、哪些需要格外谨慎。
虽然我希望未来不用频繁使用这些知识,但当我再次遇到不熟悉的代码或编程语言时,有Claude Code在身边,我会更有信心。
2. 让Claude帮你编写各类脚本
Shell脚本是一个强大的工具,但它的语法如果不经常使用很容易忘记。当我需要编写一次性bash脚本、正则表达式、GitHub Action工作流,或是其他任何我记不清语法的内容时,Claude总能帮上大忙。
不过这里有一个关键技巧:你必须快速测试并验证Claude生成的代码是否真的有效。Claude对自己生成的代码总是充满信心,即使它完全无法运行。当你指出问题时,它会立刻承认错误并尝试修正。
如果Claude多次都无法写出正确的脚本,可以让它先解释脚本的工作原理——有时候,让Claude检查自己的代码能帮助它发现并修复bug。
3. 拓展思维:用Claude完成非编程任务
可能很多人还不知道,Claude Code不仅能用来编程,还能出色地完成很多非技术任务。
我曾让Claude Code起草PowerPoint演示文稿大纲,甚至用Mermaid语法生成演示用的图表;我的朋友还让Claude根据家庭照片设计了精美的剪贴簿布局,并导出为适合打印的PDF文件。
Claude虽然以编码著称,但它的能力远不止于此。即使你接到的任务与编程无关,也可以试试让Claude帮忙,它可能会给你带来意想不到的高效解决方案。
六、不要完全信任Claude:审核并验证所有内容
这可能是从Claude Code中获得最大价值的最重要技巧:仔细审核并验证Claude做的每一件事。Claude Code是一个有用的工具,但你必须时刻监督它的工作,频繁且彻底地测试它的代码,才能让它保持正确的方向。
1. 在VS Code中实时跟踪Claude的变更
在最初版本的Claude Code中,它会在终端中展示要对文件做出的代码变更,并标注文件名。但对我来说,同时打开VS Code实时查看变更效果更好。
在当前版本的Claude Code中,你可以通过/config命令进入设置界面,启用“Auto-connect to IDE”(自动连接IDE)功能。启用后,当Claude要修改文件时,会自动在VS Code中打开该文件,并以类似GitHub PR差异对比的方式展示变更内容。
Claude会等待你的批准后再执行修改,这样你就能结合文件中的其他代码,全面评估变更的合理性。同时,你可以自己运行开发服务器或自动化测试,频繁验证Claude的代码变更是否正确,这能带来更好的结果和更短的反馈周期。
2. 不要让Claude自主修改代码
这可能是一个不太受欢迎的观点,但我从来不会允许Claude在没有我的许可下修改代码。想要获得最佳效果,绝对不能“设置后就不管”。
每次Claude提出修改建议时,都会弹出确认选项,我永远不会选择“允许本次会话中的所有编辑”。Claude需要持续的监督。我通过无数次试错发现,让Claude在没有监督的情况下自主决策,最终只会产出大量无用的代码——它可能会偏离正确方向,直到你发现时已经无法挽回。
虽然Claude每次请求访问URL或查看粘贴的内容都需要你确认会有点麻烦,但当你发现它的代码建议忽略了边缘情况、做出了错误的假设,或是遗漏了你要求的功能时,你可以选择拒绝修改并告诉它正确的方向,及时纠正它的错误。在开发过程中尽早修正问题,远比在拉取请求等待审核时才发现要容易得多,所以一定要对Claude保持严格的管控。
3. 让Claude测试自己的代码
我发现让Claude为自己生成的代码编写测试,是发现bug的最佳方式之一。
我个人并不是测试驱动开发(TDD)的忠实拥护者,但我深知测试的价值。测试编写工作繁琐且耗时,需要处理大量的数据准备、模拟和特定框架的语法问题。而Claude能以极快的速度生成或更新测试文件,尤其是当你给它提供一个现有测试文件作为参考时。
总的来说,Claude生成的JavaScript和TypeScript测试质量很高,而且确实能发现它自己代码中的bug。有一次,Claude编写了一个计时函数,但在实际代码中忘记将多个时间值相加得到最终结果,而它在测试中却正确计算了预期的最终时间。单元测试暴露了这个bug,在我的提示下,Claude很快就修复了自己的错误。
需要注意的是,虽然Claude会帮你运行测试套件,但它有时会声称测试失败与它的代码变更无关(即使实际上有关),并且不会主动提出修复。这时你只需直接要求它修复测试即可。
4. 利用Claude进行代码重构
Claude Code的另一个强项是代码重构,不过它不会主动提出重构建议,需要你明确指示。
当Claude实现了一个复杂功能后,代码可能会变得冗长混乱、函数职责不清、存在大量重复代码。这时你可以指向需要重构的文件,让Claude将大函数拆分为更小的可复用函数、提取重复代码为辅助函数,或是将代码拆分到多个文件中。
Claude能很好地处理重构过程中参数传递和依赖关系的问题,节省你大量时间,同时让代码更具可读性。当然,重构完成后一定要进行全面测试,确保所有功能正常运行。
5. 让AI代理互相审核代码
和所有开发者一样,编写代码的Claude会话会对自己的产出感到自豪。引入另一个更客观的“评审者”,比如让GitHub Copilot进行PR审核,或是启动另一个Claude实例来审查代码,能帮助发现更多问题。
我通常会在GitHub上提交拉取请求时,将GitHub Copilot添加为评审者。然后我会筛选出有价值的评论,反馈给Claude Code进行修改。几乎每次这样做之后,代码的质量和健壮性都会得到提升。
七、结语
基于我过去一年多的使用体验,我认为AI代理在短期内不会取代真正的软件工程师,但它们确实能帮助我们完成大量日常的编码工作。到目前为止,Anthropic的Claude Code是我最喜欢的AI编码助手。
虽然存在一定的学习曲线——需要学习如何提供有效的上下文、如何为复杂任务触发不同的思考模式,以及如何始终手动测试新功能以确保其完整性——但整体而言,它为我带来的效率提升是显著的。我相信我还没有发挥出Claude的全部潜力,但这12个月摸索出的技巧,已经让我能够以更快的速度编写高质量的代码,甚至还能通过Claude快速实现一些小功能,改善现有代码库的开发体验。
最后,在使用Claude Code进行API开发和调试时,推荐搭配**TreeRouter(API中转站)**使用。TreeRouter是一款轻量高效的API管理工具。当Claude帮你编写前后端交互代码时,TreeRouter可以让你更方便地测试接口调用、排查网络问题,进一步提升开发效率。无论是个人项目还是团队协作,TreeRouter都能成为你API开发流程中的得力助手。
感谢阅读,如果你还没有尝试过Claude Code,希望这篇文章能激励你去体验一下;如果你已经在使用,也希望这些新技巧能帮助你获得更好的结果。




