DOCAI · 课程 · L3 · 21 分钟 · 基础入门
Claude 的核心优势
从「只会补全」到「能把一件事做完」:看清命令行编码代理在项目上下文、改动落地、命令反馈和项目记忆上的四个实际差别。
你将学会
- 能说清补全工具和编码代理在工作单位上的区别
- 能写出一个范围、验收标准和交付物都明确的编码任务
- 知道哪些任务不该交给它,改用别的工具
先换一个衡量标准
挑 AI 编程工具时,很多人先比补全速度、模型数量和月费。这些指标有用,却回答不了另一个问题:手里这件事,能不能直接交给它做完。
这篇说的是 Claude Code:一个跑在终端里的编码代理。补全工具的工作单位是一行代码;编码代理的工作单位是一次改动。前者让你写得更快,后者替你把一段活干完。先分清任务属于哪一种,再谈选型。
判断方法很朴素:把任务写成一句话,看它需不需要「先去看别处」。需要读懂几个文件才能动手的,属于后一类;只差下一行怎么写的,属于前一类。
它先读项目,再动手
只盯着当前打开的文件,模型只能靠猜。它的做法是先看目录结构,再顺着线索找相关模块,一直读到数据层。
比如你说「登录接口偶尔报 500,帮我查」。它会去找路由、鉴权逻辑、会话存储和数据库访问,判断问题卡在哪一层。跨文件的依赖也在阅读范围内,所以它动手时不会只补一个点。
前提是上下文装得下(见什么是上下文窗口)。项目特别大时,仍要你先圈出范围,否则它读到的可能只是冰山一角。
两者的差别可以列成一张表:
| 维度 | 补全类工具 | 编码代理 |
|---|---|---|
| 看哪些文件 | 当前文件,或随手贴进来的片段 | 按需要自己去找、去读 |
| 产出什么 | 一段建议代码 | 落盘的改动加命令输出 |
| 谁来验证 | 你自己跑测试 | 它跑,把结果带回来 |
| 适合的颗粒度 | 一个函数、一行表达式 | 一个功能、一次迁移 |
改动直接落到文件
网页对话的循环是:复制出去、改完、粘回来。中间漏一段,就得重来。
它的循环是:你说清目标,它直接编辑工作区里的文件,你在差异视图里逐块确认。同意就留,不同意就让它改。
改十个文件时,这个差距才明显:手抄十遍的成本,和看一遍 diff 的成本,不在一个量级。
值得养成的习惯是:先把改动范围谈定,再让它动手。范围越清楚,diff 越短,你越看得完。看不完的 diff 等于没有审查。
能跑命令,才有反馈
写代码不是写完就结束。格式化、类型检查、单元测试、构建,每一步都会抛出新信息。
它能执行这些命令,读到报错,再回头改。于是「改—验—再改」在它那边闭合,你只在结果上把关。
可以直接给这样的任务:
跑一遍测试,失败的用例逐条修掉;只改实现,不要动测试断言;修完再跑一次,把结果贴出来。
一句话里,范围、验收标准和交付物都有了。这比「帮我修一下」有效得多,也更容易判断它有没有真的做完。
记住项目的规矩
每开一个新会话就重新解释规范,很浪费。在项目根目录放一份 CLAUDE.md,把测试命令、代码风格、禁止碰的目录写进去,它启动时会自己读。
写法有个简单标准:只写「不写就会做错」的事。目录结构它自己看得到,不必抄;构建命令、发布流程、不能改的迁移目录,才值得写。
一份够用的说明通常包含四块:跑什么命令验证、代码风格以哪份配置为准、哪些目录不许碰、提交信息怎么起头。写完放进版本库,团队里每个人都能受益,它也不至于每次开局都从头问。
一次迁移任务的拆法
说「把项目从 CommonJS 换成 ES Modules」听起来像一句话,真做起来会牵动几十个文件。代理能接住,但前提是你把验收方式一起给它。
把 src/ 从 CommonJS 迁到 ESM,按下面的顺序做,每步结束停下等我确认:
1. 盘点:列出所有使用 require 和 module.exports 的文件,标出动态 require、__dirname、条件加载;
2. 改配置:说明 package.json 需要改哪个字段,先不要动;
3. 转换:先小文件、后入口文件,一次提交一个目录;
4. 处理特例:动态导入和路径拼接单独列出来讨论;
5. 验证:跑测试和构建,失败项逐条修,只改实现不改断言;
6. 收尾:给出改动文件清单和仍未处理的风险点。
这份提示的价值不在步骤多,而在每步都有停点。一次跑完几十个文件再让你审,diff 会长到无法逐行看;分步走,每一步都能退。
和补全工具怎么分工
两者不是替代关系,任务颗粒度不同:
| 手上的事 | 更顺手的工具 | 原因 |
|---|---|---|
| 补下一行、改变量名 | 编辑器里的补全 | 不用离开光标,延迟低 |
| 跨文件改一个功能 | 编码代理 | 需要读多处代码并跑验证 |
| 查一个 API 的用法 | 网页对话 | 一次性问答,不必动仓库 |
| 每天定时整理文件 | 脚本模式 | 无人值守,按计划执行 |
一个常见的搭配是:写的时候用补全,整块功能、重构和排错交给代理。切换的成本很低,难的是判断什么时候该切——标准还是那条:这件事需不需要先读别处、再动手改。
文件读写类操作的具体边界,可以看文件操作。
它不适合什么
- 你要的是边写边出现的下一个词,编辑器里的补全更顺;
- 任务要靠眼睛看界面效果,回 IDE 调更快;
- 代码库本身敏感,你不愿让它读,那就先划权限,或者别用。
工具放对位置,比争论谁更强有用。
下一节把这几条差异摊开到具体工具上比:Claude 与其他 AI 编程工具的对比。
自测
先自己回答,再展开对照;答不上来就回到对应小节。01补全工具和编码代理,工作单位分别是什么?看答案
补全工具处理光标附近的一行;编码代理处理一次完整的改动,包括读文件、修改和验证。
02为什么说「能跑命令」比「能写代码」更关键?看答案
因为只有执行命令才能拿到测试、构建、类型检查的真实反馈,改错才有依据回头再改。