一、背景与成果
一名 9 年中厂 Java 后端工程师,在接到一个新 APP 项目时(预估 100 人日工作量),选择用 AI 编程完成。最终成果:
- 开发周期:15 个工作日
- 工具:Cursor + Claude Opus 4.6
- AI 代码占比:~95%
- 代码规模:10 万行+,674 个文件
- Token 费用:~2 万元人民币
项目包含 20+ 业务模块:用户体系、即时通信、会话管理、内容审核、支付钱包、推送通知、活动系统、任务系统、发现页等。
二、核心发现:传统工程经验在 AI 时代更值钱
很多人觉得 AI 编程时代传统架构经验没用了。实际体验恰恰相反——传统软件工程的分层思想、设计原则,在 AI 开发时代反而更重要。
因为人可以凭直觉把代码放对地方,AI 不行。你的架构经验越扎实,写出来的 Rules 就越精准,AI 产出的代码质量就越高。经验不是被替代了,是换了一种方式发挥价值——从「自己写好代码」变成「教 AI 写好代码」。
三、AI 编程的正确工作流:Leader-Worker-Judge
与传统的「评审会→设计稿→定接口→排期」串行流程不同,AI 编程采用三角色切换模式:
3.1 Leader(规划阶段)
关键词:分析需求 / 方案设计 / 定接口
行为:多问少做,逐步确认,不写实现代码。
产出:需求确认清单 → 技术方案 → API 骨架(锁定)→ 任务清单
Leader 不只是读开发流程——它会同时加载设计原则(知道哪些是红线)、项目架构(知道现有的域和模块划分)、编码规范(知道技术栈约束)。带着这些「背景知识」来对齐需求,问出来的问题质量完全不一样。
3.2 Worker(执行阶段)
关键词:开始开发 / 写代码 / coding
行为:专注执行,不发散讨论,先读懂现有代码再改。
步骤:搭骨架 → 逐个填充逻辑 → 写测试 → 部署准备
3.3 Judge(审查阶段)
关键词:review / 跑测试 / 能部署了吗
行为:严格验证,给出证据再下结论。
检查清单:代码规范 → 安全检查 → 单测通过 → API测试通过 → 接口一致性 → 静态检查 → 编译通过
四、Rules 体系——AI 的「员工手册」
AI 编程的核心不是某一次对话能写出什么,而是把 Code Review 该关注的东西提前写成规则文件,让 AI 写代码的时候就遵守。不是事后检查,是事前约束。
4.1 四条红线——AI 最容易犯的结构性错误
- 逻辑收口:同一职责只有一个归属,禁止相同逻辑多处各写一份
- 复用优先:新增代码前必须搜索已有逻辑,禁止复制-粘贴-微调
- 禁止循环依赖:模块间依赖必须是 DAG
- 禁止魔法值:所有业务语义值用枚举/常量,禁止硬编码字符串和数字
4.2 九条重要原则——传统工程经验的显式教学
| 幂等性 | 所有状态变更操作必须做幂等保护 |
| 防御性编程 | 参数校验和前置条件检查 |
| 副作用可预测 | 方法名必须体现真实行为 |
| 优雅降级 | 非核心外部依赖失败时降级,不打挂主流程 |
| 可测试性 | 用构造器注入,纯计算逻辑抽成无副作用方法 |
| 日志有效性 | 状态变更必须 log,异常路径必须 log |
| 开闭原则 | 分支 ≥3 且有增长趋势才引入策略/工厂模式 |
| 模块化设计 | 复杂业务拆成边界清晰、可独立演进的模块 |
| 设计模式使用 | 问题驱动,先有问题再匹配模式 |
4.3 禁令写法——对 AI 特别有效的格式
❌ 禁止用 @Lazy 注解掩盖循环依赖
❌ 禁止仅检查一跳直接依赖就声称「无循环依赖风险」
❌ 禁止 get/find 方法包含写操作
❌ 禁止在循环体内高频打 log.info
每条禁令背后都有一个真实踩过的坑。AI 对正面「建议」选择性接收,但对明确「禁止」几乎 100% 遵守。规则越像「法条」,AI 执行力越强。
五、测试分层规范
什么改动写什么测试:
- Service 内部逻辑分支 → 必须写单元测试
- 新增或修改 API 接口 → 必须写 API 集成测试
- 多 API 交互流程 → 必须写流程串联测试
- 仅改工具类/枚举 → 必须写单元测试
人开发的时候自测经常偷懒,但 AI 写测试成本低。让 AI 写测试拉满,项目结束时测试代码比业务代码还多。
六、六个踩坑雷区
坑 1:别第一天就搞微服务
AI coding 有个硬性前提:所有代码在一个项目里,本地能跑起来。拆成微服务之后,AI 写订单模块的时候看不到用户模块的代码,跨服务调用全靠猜。
单体多模块就没这些问题——代码在一个项目里,AI 能看到全貌;本地一键启动,改了就能跑。
坑 2:一个窗口聊到底,不如勤开新窗口
最长一次对话 1800 条消息,到后面 AI 明显开始忘事。这是上下文窗口的物理限制。
原则:新模块、新功能、Judge 审查、BugFix——全部开新窗口。对话会忘,文件不会。
坑 3:修 Bug 别让 AI「顺手优化」
让 AI 修一个空指针,它修完了顺手把整个方法重构了——变量名全改、代码结构调整。空指针好了,新来俩 Bug。
BugFix 四步闭环:定位根因 → 最小改动 → 补测试 → 跑通。想重构?开个新窗口。修 Bug 和重构,永远不要混在一起。
坑 4:手动改了一半代码,AI 给你改回去
有时候手动改几行代码(调个参数、改个判断条件),但改得不彻底。下一次让 AI 改这个模块时,它会把手动改的那一处也改回去。
尽量都让 AI 改(它会全局搜索关联位置一起改)。
坑 5:AI 看不见「全局」
AI 单文件能力很强,但全项目维度的代码质量——跨文件重复、命名不一致、潜在性能问题——它基本看不见。
解法:把全局工程质量交给 Checkstyle、PMD、SpotBugs 这些原生专业工具。AI 负责写,工具负责查,人负责判断。
坑 6:跟 AI 对话,名称得稳定
你跟 AI 讨论一个功能,第一次叫它「积分发放」,第二次叫「奖励逻辑」,第三次叫「活动结算」——AI 会以为这是三个不同的东西,然后给你写三份代码。
方案文档里每个功能点有唯一的名称,对话里严格用这个名称,不用同义词、不用缩写。
七、实操路径
Day 1:通用层 + 技术栈层复制进 .cursor/rules/,5 分钟搞定。AI 的行为马上就会不一样。
第一周:补项目层——先写 3-5 个核心域的边界表,不用一步到位。
持续:每踩一次坑就加一条禁令。这是最有复利的事。
八、总结
AI 编程的瓶颈不在 AI,在你。
同样是 Cursor + Claude Opus,不给它立规矩就是「第一天爽,第三天乱,第五天想重写」。给它一套完善的 Rules 就能稳定输出。
这跟带团队一个道理——招来的人再厉害,没有规范、没有流程、没有测试要求,项目一样烂。AI 也是。
2 万块 Token,15 天,10 万行生产级代码。传统方式 2-3 个人干 2-3 个月。但这个效率不是白来的——你得花时间把「规矩」立好。