AI不是万能的:一个失败项目的复盘

  • 约2098字
  • 技术
  • 2026年3月11日

上个月我用AI辅助开发的一个核心模块上线了,结果上线第一天就出现了严重事故——订单处理逻辑出错,导致200多个用户的订单数据异常。紧急回滚后,我花了整整两天时间排查问题根源。

这不是AI的错,是我的错。

今天把这次失败的经历完整复盘一遍,分享5个关键教训。希望你看完后,能避开我踩过的坑。

背景:什么样的项目

先交代一下项目背景。这是一个企业内部订单管理系统,技术栈是Java+MySQL,功能看起来不复杂:订单创建、修改、查询、统计。

我为什么敢用AI辅助开发?之前用AI完成了代码审查、单元测试生成、数据库设计等多个环节,效果都不错。我心想:既然AI连Code Review都能做,帮我写一个订单模块应该不在话下。

结果证明,我过于乐观了。

教训一:复杂业务逻辑,AI理解不了上下文

让我崩溃的第一幕是这样的。

我给AI的原始需求是:“做一个订单管理模块,包含订单创建、修改、查询、状态流转。”

AI确实很快给了我代码。但仔细一看,我发现它对业务逻辑的理解完全是错的。

比如,我需要根据用户等级设置不同的折扣策略。AI生成代码里用的是简单的if-else,而且只考虑了3个等级。但实际业务有7个等级,还有VIP专属折扣、限时活动叠加等十几种场景。

AI不知道这些,因为它没有我脑子里的业务上下文。它能写代码,但它不理解这个业务背后的复杂规则。

教训:需求越复杂、业务细节越多,AI出错的概率越高。这类需求不如自己动手,或者至少要花更多时间检查AI生成的代码。

教训二:AI不会主动问问题,它只会猜测

这是我踩的第二个坑。

AI生成代码后,我没有仔细review,直接合入了主分支。结果上线后才发现:一个关键的状态流转逻辑被漏掉了。

具体是这样的:订单创建后需要经过"待支付→已支付→已发货→已完成"这几个状态。但AI生成的代码里,“已发货"这个状态没有做库存扣减的关联。

为什么AI会漏掉这个?因为我给的需求文档里没有明确写"发货时需要扣减库存”。我以为这是常识,AI应该知道。结果AI表示:你不告诉我,我怎么会知道?

教训:AI不会主动追问需求细节,它只会基于你给的信息猜测。重要需求一定要写清楚所有边界条件和关联逻辑,别让AI猜。

教训三:看似正确的代码,可能有隐藏bug

第三个教训最致命,也是导致这次事故的根本原因。

AI生成了一段订单状态更新的代码,看起来逻辑清晰、语法正确。但上线后,这段代码在并发场景下出现了竞态条件——多个请求同时更新同一订单状态时,后面的请求会覆盖前面的修改,导致订单状态错乱。

这不是语法错误,是逻辑错误。AI生成的代码在单线程环境下完全正常,只有在高并发场景下才会暴露问题。

教训:AI擅长生成"看起来对"的代码,但不一定是对的代码。特别是涉及并发、事务、分布式这些复杂场景时,一定要自己仔细review,最好做专门的并发测试。

教训四:AI生成测试用例,但测不出你没想到的场景

出事后我回过头看,AI生成的测试用例覆盖率确实很高,但全是happy path——正常情况下的测试。

它没有帮我测并发场景,没有帮我测边界条件,更没有帮我发现我遗漏的业务逻辑。

这不能怪AI。测试的本质是"验证你已知的问题",而AI只能帮你覆盖你已知要测的场景。那些你没想到的边界,AI也帮不了你。

教训:不要依赖AI帮你发现"没想到"的问题。自己的业务自己最清楚,该补的测试用例还是要自己补。

教训五:过度依赖AI,会丧失独立思考能力

最后一个教训,是我自己反思得出的。

这次失败后,我发现自己有一个危险的倾向:越来越依赖AI给出的答案,逐渐失去了独立思考和判断的能力。

以前我自己写代码,会先想清楚逻辑、画流程图、考虑各种边界。现在有了AI,我习惯性地把需求一丢,等AI给我答案,然后快速过一遍就合入。

这种习惯其实很可怕。AI是工具,不是脑子。过度依赖工具,会让自己的技术判断力退化。

教训:AI可以帮你提效,但不能代替你思考。关键逻辑一定要自己过一遍脑子,不要完全甩给AI。

总结:AI的正确打开方式

说了这么多失败教训,不是要否定AI。AI确实是好工具,关键是用对场景。

根据这次血的教训,我总结了一下AI的擅长和不擅长:

AI擅长

  • 标准化、规律性的代码:CRUD、模板代码、基础数据结构
  • 代码优化:重构、消除重复、命名规范
  • 知识查询:语法查阅、API用法、库函数选择
  • 单元测试生成:给定函数,生成基础用例

AI不擅长

  • 复杂业务逻辑:需要深度业务理解的代码
  • 边界条件处理:你没想到的,AI也想不到
  • 并发和事务:需要专门设计的高风险代码
  • 需求澄清:不会主动追问细节

如果你也是开发者,我的建议是:把AI当成一个"超级实习生"——可以帮你打下手,但关键决策一定要自己拍板。

最后,事故已经过去,代码已经修复。但这次复盘我会一直记住:AI是工具,用好了是福,用不好是祸。


好了,今天的复盘就到这里。如果你也有类似的失败经历,欢迎在评论区分享,我们一起避坑。

也欢迎点个赞、在看,转发给需要的朋友。下期再见。

相关文章

AI 应用开发入门工具简介

随着ChatGPT的出现,各种 AI 工具层出不穷。本文介绍了 LangChain、dify 和 Coze 三款热门 AI 开发工具,详细分析了它们的特点和应用场景,帮助开发者快速搭建高效的 AI 应用。

查看更多

日志分析还在逐行搜?AI分钟级定位问题

线上故障发生时,你还在逐行搜索日志?本文复盘一次真实的故障排查经历,分享如何用AI将日志定位时间从2小时缩短到10分钟,包含具体工具和操作步骤。

查看更多

智能编程革命:六大代码生成工具选择指南

介绍了六款国内外主流代码生成工具,包括GitHub Copilot、MarsCode、文心快码、通义灵码、CodeWhisperer 和 CodeGeeX,并做简单的比较。

查看更多