AI写代码总翻车?后端老兵的实战避坑清单
上周三晚上十点,你在改订单退款逻辑。优惠券叠加规则刚变,你让 AI 帮忙重写 calculateRefundAmount。它很快吐出一段代码,编译通过,单测也绿。灰度十分钟后,财务群里炸了:三笔退款多扣了 0.01,日志里还有空指针。
你回头一看,AI 顺手把 DTO 的 BigDecimal 改成 double,还引入了一个项目里根本不存在的工具类。它写得像真的,错得也很像真的。
这里有两个常见误区:
误区一:把 AI 当自动补全,给一句话就想要生产代码。
它不知道你的业务规则、表结构、历史包袱,也不知道哪些模块不能碰。
误区二:把 AI 当搜索引擎,只问“怎么写”,不贴上下文。
你问“Java 怎么做幂等”,它给的答案能跑;你问“订单退款回调怎么做幂等”,它可能给你一套和现有 Redis 方案冲突的实现。
AI 编程工具能提速,但它更像一个手很快、记性很杂、偶尔自信胡说的初级开发。你要做的是给它施工图、装护栏、做验收。
一、3 个能直接照搬的高效实战技巧
技巧 1:先要变更计划,再要代码
别一上来就让 AI 写代码。先让它说清楚准备改什么、为什么改、风险在哪。
操作步骤:
- 清空无关文件,只贴和目标相关的接口、DTO、表结构、配置。
- 用 5 行以内写清业务规则,比如“同一退款单号只允许成功一次”。
- 明确禁止项:不许改 DAO 接口,不许新增依赖,不许重写整个文件。
- 要求它先输出变更计划、影响文件、测试点,你确认后再写代码。
案例:给支付回调加幂等。我让 AI 只改 PaymentCallbackService,先列计划。它提出用 Redis setIfAbsent 做键,但键设计漏了商户号。我补上后,它再生成代码。那次一次编译通过,review 只改了日志级别。
【金句:别让 AI 猜业务,先给它施工图,再让它动扳手。】
技巧 2:小步提交,给 AI 装回滚点
AI 最危险的动作不是写错,是在你还没提交时,把三个文件一起改乱。你要把每次 AI 改动切成小步。
操作步骤:
- 动手前先
git commit,保证工作区干净。 - 一次只让 AI 改一个函数或一个类。
- 让它先补边界测试,再改实现。
- 跑测试,看
git diff,确认没有顺手重构、格式化、改配置。 - 通过后再提交,进入下一小步。
案例:库存扣减并发问题。AI 第一版直接加 synchronized,单机测试通过。我让它先写并发测试,模拟 200 个线程扣同一商品。测试跑出超卖。再让它改成数据库 CAS 更新,影响行数为 0 就重试。问题收敛在库存服务内部,没扩散到订单模块。
【金句:AI 不怕改错,怕你没有回滚点。】

