开发者实用指南
开发者如何使用 Claude:Claude Code、API 与智能体工作流程
终端正在成为新的 IDE,而 diff 依然是信任的最小单位。
开发者以三种不同的方式使用 Anthropic 的 Claude:作为规划和审查的聊天伙伴,作为直接在终端运行的 Claude Code,以及作为由他们自己的 API 驱动产品背后的模型。本页将逐一介绍开发者在每种模式下如何使用 Claude,包含用于代码审查、编写测试和工具调用的实际提示,以及在 AI 生成代码进入生产环境之前保证其安全的习惯。
开发者如何使用 Claude,可以归结为三个场景:用于规划和代码审查的 Claude AI 聊天界面,用于读取代码仓库并直接编辑文件的终端原生智能体开发工具 Claude Code,以及用于在自己产品中构建工具调用和智能体工作流的 Anthropic API。大多数开发者从聊天开始,把重复性的编辑和测试工作转移到 Claude Code,并在要上线一个由 Claude 驱动的功能时转向使用 API。保证 AI 生成代码安全的习惯,与保证任何代码安全的习惯是一样的:小的 diff、测试,以及合并前的审查。
发布于 · 最近审核
免费课时 · 无需注册账号使用 Claude 的三种方式三种模式5分钟开始免费课时要点总结
- 开发者使用 Claude 涉及三个场景:用于规划和代码审查的聊天,用于终端工作的 Claude Code,以及用于构建自己的工具调用和智能体功能的 Anthropic API。
- Claude Code 会读取你的代码仓库,跨整个代码库编辑文件,运行你的测试套件,还能提交改动,这一切都在一个普通的终端会话中完成。
- 工具调用让 Claude 可以调用你自己定义的函数,比如查询数据库、调用内部 API,或运行脚本,作为回答请求的一部分。
- 代码审查效果最好的方式,是让 Claude 针对一个具体的 diff 和一个具体的检查标准来审查,而不是含糊地说一句“看看我的代码”。
- Claude 可以编写并运行测试,但让生成代码保持安全的习惯,和让任何贡献者的代码保持安全的习惯是一样的:小的 diff、通过的测试套件,以及合并前的人工审查。
- 从一个 CLAUDE.md 文件开始:一个简短的项目主干文档,告诉 Claude 你的技术栈、命令和约定,让它不必再去猜。
Claude AI 对比 Claude Code 对比 Anthropic API
| 场景 | 最适合 | 运行位置 |
|---|---|---|
| Claude AI(聊天) | 规划、架构讨论、审查粘贴进来的 diff 或堆栈跟踪 | 浏览器或桌面应用 |
| Claude Code | 跨多个文件的编辑、运行你的测试套件、在你真实代码仓库中自主完成工作 | 你的终端,在项目目录内 |
| Anthropic API | 把由 Claude 驱动、带工具调用的功能或智能体构建进你自己的产品 | 你的应用代码,通过 HTTPS 调用 |
复制即用
今天就能用的提示词
按照具体标准审查 pull request 的 diff
你正在审查一个 Python FastAPI 服务的 pull request diff。请专门检查 SQL injection 风险、请求体缺少输入校验,以及任何没有参数化的数据库查询。把每个问题连同文件和行号列出来,解释为什么这是个问题,并给出修复建议。不要评论格式或代码风格。
把语言、框架,以及你想要标记的具体风险,换成你自己技术栈对应的内容。
编写符合你现有风格的测试
查看 tests/test_orders.py 中已有的测试,严格匹配它们的结构、fixtures 和命名约定。为 orders/service.py 中新的 refund_order 函数编写单元测试,覆盖以下情况:成功退款、对已经退款过的订单再次退款、以及退款金额超过原始收款金额。使用 pytest,并沿用已有的 mock 模式。
把它指向你真实的测试文件和框架,无论是 pytest、Jest 还是 Vitest。
在提供完整上下文的情况下调试一个不稳定的测试
这个测试在 CI 中偶尔失败,但在本地总是通过:[粘贴测试名称和报错信息]。这是测试文件、它所测试的函数,以及最近三次 CI 失败的日志。请先梳理这种不稳定可能的原因,然后再给出修复建议,并明确告诉我你还不确定的地方。
直接粘贴真实的日志和文件内容,而不是凭记忆描述这个 bug。
为 Anthropic API 设计一个工具调用函数
我正在用 Anthropic API 构建一个智能体,它需要从我们内部的 REST API 中查询客户的订单状态。请先起草这个工具的定义,包括其输入参数的 JSON schema,再给我展示处理返回的 tool_use 代码块,并把 tool_result 发回给 Claude 的 Python 代码。
把内部 API 和参数换成你自己服务的实际形态。
为新项目起草一份 CLAUDE.md
通读这个代码仓库的 package.json、README 和文件夹结构,然后起草一份 CLAUDE.md 文件,记录我们的技术栈、运行测试和开发服务器的命令、API 路由的命名约定,以及任何新贡献者在做出第一次改动前需要了解的信息。
在项目开始时运行一次,之后每当约定发生变化时再更新它。
在动手改代码之前先规划一次跨多个文件的重构
我想把目前分散在三个 controller 里的支付逻辑,提取成一个单独的 PaymentService 类。在写任何代码之前,先列出所有目前包含支付逻辑的文件,提出这个新类的公开方法,并标出这三个现有实现之间存在的行为差异,这些差异是重构时需要保留的。
对任何涉及两三个以上文件的改动,先要求给出计划。
从这里开始
每个开发者都该从这几节免费课开始
三节简短的课程,会带你从知道 Claude 的存在,一路走到搭好项目主干、运行一次真正的 Claude Code 会话,这足够让你当天就开始用它处理真实的工作。
三个场景
开发者实际上是怎么使用 Claude 的
开发者使用 Claude 并不是用一个工具,而是三个,知道眼前这个任务该用哪一个,几乎就是这项技能的核心。
Claude AI 聊天
适合架构讨论、审查粘贴进来的 diff 或报错信息,以及在动手写代码之前把设计想清楚。
Claude Code
一个终端原生的智能体,它会读取你的代码仓库,跨整个代码库编辑文件,运行你的测试套件,并能按你的指示提交改动。
Anthropic API
模型加上工具调用,用于把 Claude 构建进你自己的产品:一个能查询数据库的客服机器人、一个 IDE 内助手,或是一个无人值守运行的流水线。
智能体工作流
把工具调用和一个循环结合起来:Claude 决定调用哪个工具,读取结果,再决定下一步,如此反复,直到任务完成。
Claude Code
什么是 Claude Code,又该如何开始使用它?
Claude Code 是 Anthropic 推出的命令行工具,让你直接在代码库内部与 Claude 协作。你不再需要把代码复制进聊天窗口再把答案粘贴回来,而是从项目目录中运行它,它会读取你的文件、git 历史和测试配置,作为处理你任何请求的上下文。
一个典型的会话大致是这样的:你在代码仓库中打开一个终端,启动 Claude Code,用平实的语言描述一个任务,比如给你的 POST 接口加上速率限制。它会读取相关文件,提出并应用改动,涉及到多少个文件就改多少个,运行你的测试套件,然后向你汇报它改了什么、测试是否通过。
让 Claude Code 和编辑器插件不同的地方在于,它处理的是整个任务,而不只是下一行代码。它可以规划一个多步骤的改动,逐步执行,在测试失败时注意到,并尝试修复,这一切都发生在你给出的一条指令之内。你可以在它运行计划之前先阅读这个计划,并在提交之前审查 diff,从而始终掌握全局。
最先值得搭建起来的,是项目根目录下的一份 CLAUDE.md 文件。它是一份简短、用平实语言写成的文件,告诉 Claude 你的技术栈、构建和测试命令、命名约定,以及任何一个新贡献者在第一天就需要知道的信息。一旦有了这份文件,Claude Code 就会在每次会话开始时自动读取它,而不是靠猜。
真实工作场景
开发者本周在用的工作流
以安全为重点的代码审查
让 Claude 针对一个 diff 和一类具体的风险(鉴权绕过、注入、未经校验的输入)去检查,而不是要求一次泛泛的审查。
编写并运行测试
Claude 会读取你现有的测试模式和框架,写出符合你风格的测试,运行它们,并针对失败的部分不断迭代。
跨文件重构
对于涉及两三个以上文件的改动,先要求给出一份计划:哪些文件会变、新的结构是什么样子、哪些行为必须保持不变。
调试一个难以重现的 bug
把失败的测试、被测试的函数,以及失败时的真实日志都提供给它,然后让它先推理可能的原因,再给出修复建议。
在陌生代码库中快速上手
让 Claude 在代码库中追踪一个请求并解释整个流程,这通常比从零开始读代码要快得多。
Anthropic API
工具调用、智能体,以及用 Anthropic API 构建产品
Anthropic API 是把 Claude 放进你自己产品中的方式,而不是通过聊天窗口来使用它。你发出一个带有 prompt 的请求,拿到一个响应返回,形态和任何 HTTP API 一样,这意味着它能融入你现有的任何后端技术栈,无论是 Python 服务、Node 应用,还是别的任何东西。
工具调用是把一次单纯的请求-响应调用,变成更接近智能体的那个功能。你描述 Claude 可以使用的工具,每个工具是一个函数,有名称、描述,以及输入参数的 JSON schema,比如一个接收订单 ID 的 lookup_order 函数。当 Claude 判断需要这个工具才能回答问题时,它会返回一个 tool_use 代码块,而不是直接给出答案。你的代码负责执行真正的函数调用,无论这对你的系统意味着什么,数据库查询、API 调用,或是一个脚本,然后把结果以 tool_result 的形式发回给 Claude。Claude 读取这个结果,并继续往下走。
从实际意义上说,智能体就是把这个循环反复运行多次:Claude 选一个工具,你去执行它,Claude 读取结果,再选下一个,直到任务完成,或者它已经拿到足够的信息来回答。Model Context Protocol 是一套用一致方式描述这些工具和连接的标准,这样同一套工具定义就能在不同客户端上复用,而不必为每个项目都从零搭建一遍。
另一个值得了解的部分是 streaming(流式传输):API 不需要等完整响应生成完毕,而是可以在 token 生成的同时就把它们发回来,这正是让聊天界面和实时代码建议感觉灵敏、而不是卡顿的原因。
保证安全
如何保证 Claude 的代码改动是安全的
这里没有一条是 AI 专属的。这些都是保证任何贡献者的代码安全的同一套纪律,只是始终如一地应用而已。
保持 diff 小
一次只要求一个改动。一个涉及五个文件的 diff,十分钟就能审查完;一个涉及五十个文件的 diff,大概率会被草草盖章通过,而这恰恰是 bug 溜进去的时刻。
测试要在合并之前,而不是之后
让 Claude 把编写或更新测试当作同一个任务的一部分,并要求测试通过之后,才能认为这个 diff 完成了。
自己亲自读一遍 diff
Claude 可以解释它改了什么、为什么这么改,但提交代码的人,仍然要对自己是否真的读过这些代码负责。
永远不要把密钥粘贴进 prompt 里
API 密钥、凭证和客户数据,不应该出现在聊天记录或 Claude Code 会话中,就像它们不应该出现在一条 Slack 消息里一样。
把你的约定教给它一次就够
一份写明你的技术栈、命令和风格指南的 CLAUDE.md 文件,能大幅减少那些消耗整个会话的来回纠正。
从哪里开始
开发者的入门路径
如果你作为开发者刚开始接触 Claude,最快的入门方式是按顺序学完三节简短的课程。先从《三种模式》课程中的《使用 Claude 的三种方式》开始,它梳理的正是上面讲到的聊天、Claude Code 和 API 这三者的区别,这样你在打开终端之前,就已经知道该用哪个场景。
接下来,学习同样在《三种模式》课程中的《Claude Code:用文字构建》。它会带你了解一个真实的 Claude Code 会话是什么样子:用平实的语言描述一个任务,看着它读取你的代码仓库并应用改动,并在上线之前审查结果。
第三站是《实践者设置》课程中的《CLAUDE.md:你的项目主干》。在这里,你会学会写这份文件,让 Claude 不必在每次会话中重新猜测你的技术栈、命令和约定,这是让之后每一次会话都更快的那一个关键习惯。
完成这三节课之后,《实践者设置》课程的其余部分会讲到 hooks 和自动化、通过 MCP 服务器把 Claude 连接到你的技术栈,以及搭建一个每周运行的操作者工作流,这正是把 Claude 用成开发者日常习惯、让效果真正叠加起来的地方。
局限
Claude 会在哪些地方出错,以及哪些责任始终在你身上
Claude 可能会自信地犯错。它可能提出一个修复方案,通过了你给它的测试,却漏掉了你没想到要测的边界情况,或者用了一个根本不存在的库函数。把它的输出当作一个读得很多、动作很快的协作者给出的优秀初稿,而不是一个已经做好的决定。
生成的代码需要和人写的代码接受一样的安全审查,甚至可以说在你们刚开始合作的那几次,更需要留意,直到你摸清楚它在你这个具体代码库上容易犯错的地方。不要因为它出自一个写代码很流畅的工具,就跳过对任何涉及鉴权、支付或用户数据的内容做安全审查。
机密源代码、客户数据和凭证,在没有先确认过你所在组织的政策之前,不应该放进任何 AI 工具里。如果你所在的地方有数据处理政策或客户保密义务,这些义务不会因为审查者是一个模型而不是一个人就有所改变。
最后,自主程度是一个可以调节的旋钮,而不是一个开关。如果你允许,Claude Code 可以自己运行测试,甚至自己提交,但专业的习惯是在任何改动到达共享分支或生产环境之前,都保留一个人工审查的环节,这和你会希望加在一位新人入职第一个月提交的 pull request 上的那道关卡是一样的。
开始学习讲解使用 Claude 三种方式的这节免费课
阅读开发者如何使用 Claude 的介绍,和在自己的终端里真正运行 Claude Code,是两件不同的事。Nightschool AI 的课程从第一节课开始就是动手实践的,正是从这一页所讲的聊天、Claude Code 与 API 的区别开始讲起。
常见问题
开发者是如何使用 Claude 的?
开发者通常会在三个场景中使用 Claude:用于规划、设计讨论和审查粘贴代码的 Claude AI 聊天界面;用于终端原生工作、让 Claude 读取并编辑真实代码仓库的 Claude Code;以及用于把 Claude(包括工具调用和智能体循环)构建进自己产品的 Anthropic API。
什么是 Claude Code,我该如何开始使用它?
Claude Code 是一个命令行工具,能让 Claude 直接在你的项目内部运行。你从代码仓库的根目录启动它,用平实的语言描述一个任务;它会读取你的文件和 CLAUDE.md,完成改动,运行你的测试,并向你汇报结果。先搭建一份描述你技术栈和命令的 CLAUDE.md 文件,会让最初几次会话准确得多。
Claude 适合用来做代码审查吗?
适合,尤其是当你给它一个具体的 diff 和一个具体的检查标准时,比如安全问题、缺少输入校验,或是是否遵循了团队的约定。让它检查一件具体的事,效果会比含糊地说一句“帮我看看代码”好得多,这和人类审查者在有明确审查标准时能做得更好,是同一个道理。
我该如何使用 Anthropic API?
你发出一个带有 prompt 的 HTTP 请求,拿到一段文本响应返回,形态和任何 API 调用一样,你可以从 Python、Node,或你运行的任何后端里调用它。如果想构建的不只是一次简单的问答,就要加上工具调用,给 Claude 一些它可以调用的函数,并在你自己的代码里处理随之产生的 tool_use 和 tool_result 交换。
Claude 中的工具调用是什么?
工具调用让你可以描述一些 Claude 能够调用的函数,比如查询一个订单,或查询一个数据库,每个函数都有名称和输入参数的 JSON schema。当 Claude 判断需要某个工具时,它会返回一个 tool_use 请求,而不是直接给出答案;你的代码运行真正的函数,并把结果发回去,让 Claude 可以继续往下走,这也是大多数智能体工作流的基础。
Claude 能为我的代码编写测试吗?
能。Claude 可以读取你现有的测试模式和框架,无论是 pytest、Jest 还是 Vitest,并写出符合你风格的单元测试、集成测试或端到端测试。在 Claude Code 中,它还能运行自己写的测试,并不断迭代修复失败的部分,而不是把测试丢给你,让你自己再去调试。
我该如何保证 Claude 的代码改动是安全的?
保持你希望任何贡献者都遵守的同一套纪律:要求小的 diff,而不是大范围的改动;要求测试通过之后才能合并;提交之前自己亲自读一遍 diff;永远不要把密钥或客户数据粘贴进 prompt 里。一份 CLAUDE.md 文件能减少 Claude 因为猜测你的约定而犯下的错误。
Claude 支持哪些编程语言?
Claude 支持包括 Python、TypeScript、JavaScript、Go、Rust、Java、C/C++、Ruby 和 PHP 等主流语言,也理解像 React、Next.js、Django 和 FastAPI 这类工具常见的框架模式。Claude Code 可以用于任何能在终端中运行的语言,因为它直接操作你的文件和 shell 命令,而不是通过某个语言专属的插件。
Claude Code 是免费安装的吗?
Claude Code 本身是免费安装的。使用它需要一个按 token 计费的 Anthropic API 密钥,或是一个包含 Claude Code 使用权限的 Claude 订阅计划。在此之外,这个命令行工具不需要再额外支付许可费用。