
大多数开发者把 AI 当成超级自动补全,资深工程师却把它当成一个带着终端的初级队友。差别不在模型,而在工作流。下面这套方法来自 Rubel 2026 年 11 月 9 日发表的实战总结,讲的是资深工程师如何用 Claude 和 Cursor 写出干净、可靠、可直接上线的代码——六步都能照着做。
1. 先立一份严格的规则文件,再写一行代码
不告诉 AI 你的代码库是怎么组织的,它就会猜;而它一猜,写出来的就是通用教程式代码。资深工程师会先花 10 分钟,在项目根目录放一份 50 行以内的 .cursorrules 或 AGENTS.md,写清约束而不是客套话:
- 项目规范:技术栈(如 TypeScript 5.4、Next.js 15 App Router、Tailwind CSS)、校验方式(外部输入一律用 Zod schema、禁用
any)、状态管理(客户端用 Zustand、数据变更用 Server Actions)、测试命令(改完跑npm test -- <filepath>验证); - 行为禁令:不删已有注释和 docstring、未经询问不加新的 npm 依赖、只做外科手术式修改、不重排没动过的代码。
有了这份文件,Cursor 和 Claude 就不再凭空捏造冷门库,而是直接按你团队的 PR 规范写代码。
2. 不用浏览器聊天框写代码,改用 Composer / Agent 模式
侧边栏聊天窗口适合问问题,比如“这个库怎么处理连接池?”;但用来做功能就是灾难。资深工程师会切到 Composer / Agent 模式(Cmd+I 或 Ctrl+I),因为它能直接操作文件系统。
关键是用 @ 精确标注文件,而不是把整段代码粘贴进去,例如:
@schema.prisma @auth.ts Add session invalidation on password reset.
这样做有三个好处:模型的上下文保持干净聚焦;生成的是编辑器里的原生 git diff;可以逐行接受、拒绝或撤销。
3. 三步 Spec-First 循环:先出计划,再写代码
资深开发者从不直接说“写一个 Stripe webhook 处理器”,而是把每个功能拆成三步循环:
第一步:只出计划,不写代码。例如:“我需要一个处理 checkout.session.completed 的 Stripe webhook 处理器。先看 @stripe.ts 和 @db.ts,用 markdown 列出所需步骤、数据库更新与失败场景。先不要写代码。”
第二步:人工 60 秒审计划。工程师读一遍大纲,发现漏洞:“等等,重复的 webhook 事件需要做幂等校验。”然后回复:“在第 2 步里加上对 processed_events 表的幂等检查。”
第三步:执行。计划过关后才说:“只执行第 1、2 步。”
先逼模型出计划,架构 bug 在进代码库之前就被抓住。
4. 测试驱动 AI:先写测试,再让 AI 实现
让 AI 同时写功能和测试,它会写出能通过自己幻觉的测试——都绿了,但都是错的。资深工程师把顺序反过来:
- 先把接口交给 Claude:“这是
calculateDiscounts的 TypeScript 接口,写 5 个单测,覆盖:零商品、过期优惠券、百分比折扣、边界值。” - 跑测试套件,全部失败(红灯):
npm test calculateDiscounts.test.ts。 - 把失败输出交给 Cursor:“实现
calculateDiscounts,让@calculateDiscounts.test.ts里的测试全部通过。”
这下 AI 有了一个数学意义上的明确目标,不达标不会停。
5. 像挑剔的技术负责人一样审 diff
Claude 生成完代码,初级开发者点“全部接受”;资深开发者打开 diff 查看器,专门找三类红旗:范围蔓延(AI 动了本不该碰的工具文件?)、无声重构(顺手重写了旁边无关的函数?)、幽灵依赖(偷偷引入了没安装的包?)。
如果 Claude 用 40 行实现了 10 行就能做的事,直接打回那段 diff:“太复杂了,只用原生 Array.reduce 实现,不要引入辅助工具函数。”记住:不是你为 AI 打工,是 AI 为你打工,你是质量关口。这方面反面教材不少——Claude Code 一句“不再询问”,就把 2539 个真实密钥送上了 GitHub 公开仓库,权限与审 diff 一刻都不能松。
6. 把终端报错直接喂给模型,让它自修
用 Claude Code 或 Cursor 最快的方式,是让工具自己检查自己的错误。遇到编译或 lint 报错时:不要复制报错文本粘贴进聊天框问怎么修;给智能体终端执行权限,直接说:“运行 npm run build,如果有 TypeScript 报错,读终端输出并修复。”拿到确切报错信息与行号的模型,90% 的情况下一次就能改对。
日常速查表
- 准备:写代码前先放一份 40 行左右的规则文件(
.cursorrules); - 工具:用编辑器内的 Composer / CLI Agent,不用浏览器聊天窗口;
- 上下文:用精确的
@文件与@符号标注,不粘贴整个文件; - 任务粒度:保持原子化(需求 → 类型 → 代码 → 测试);
- 验证:逐行检查每个 diff,绝不盲目点“全部接受”;
- 调试:把终端堆栈跟踪直接喂给模型。
AI 并没有消除工程基本功的必要,反而放大了它。不懂系统架构,AI 只会帮你更快地制造技术债;但如果你会写需求、会设边界、会无情地审代码,Claude 与 Cursor 能让你一个人就是一支工程队。想进一步玩转 Claude Code 的 Skill 机制,可以看看站内这篇:cinecode:免费开源 Claude Code 视频 Skill,一句话生成 8 分钟百慕大纪录片。
转自 Medium 作者 Rubel 的文章《How Senior Engineers Actually Code With Claude and Cursor》,原文链接













