我用AI一周写完项目上线就崩了:这是我踩过最贵的5个坑

13 阅读8分钟

我用AI一周写完项目上线就崩了——踩过最贵的5个坑

这不是一篇「AI好棒棒」的爽文,这是一篇用真金白银换来的血泪史。


那天的场景,我这辈子忘不了

周五晚上11点,我盯着屏幕上血红色的 500 Internal Server Error,手心全是汗。

手机疯狂震动——用户群已经炸锅了。

「怎么登录不了?」「钱扣了但订单没生成啊!」「这什么破系统?」

老板的电话也来了,我只敢发微信回他:「在处理了……」

这个项目,是我用 AI 一周写完的。几千行代码,功能齐全,界面漂亮,Demo 演示的时候大家都说好。

结果上线第一个小时就崩了。

AI 确实牛。但如果你以为它能替你兜底,那你迟早也会经历我那个晚上。

今天不卖焦虑,不吹不黑——就跟你聊聊我用 AI 做项目踩过的 5 个最贵的坑。每个坑背后都是真金白银的教训,听完你明天用 AI 写代码就知道哪些雷千万别踩。


坑一:AI 写的代码,没有「摔跤预案」

你让 AI 写个登录功能:

用户名 → 密码 → 验证通过 → 返回 token → 完成

写得漂亮。干净。高效。

但如果你上线了,真实世界是这样的:

  • 用户输错密码 5 次怎么办?
  • 数据库突然连不上了怎么办?
  • token 过期了怎么办?
  • 100 个人同时登录怎么办?
  • 有人用脚本暴力破解怎么办?

AI 默认写的全是「Happy Path」——一切假设都是理想情况。 就像一个从没出过远门的人,你告诉他「去菜市场买把葱」,他会。但你要问他「下雨怎么办」「卖葱的关门了怎么办」「路上堵车怎么办」——他就不会了。

真实代价:我那次,用户输错密码 6 次后,前端直接白屏。因为 AI 只处理了「成功」和「失败」两种返回,没处理「账号被锁定」这种中间状态。就是一个 else 分支的问题,但足以让几十个用户流失。

怎么防:

每次 AI 写完一个功能,你必须追问一句:「如果这个出错了怎么办?」

逼它补异常处理、边界条件、降级策略。把这个当成肌肉记忆——每写完一个函数就问一次。上线后能少掉 80% 的紧急修复


坑二:AI 不认识你家的「厨房」

你的项目不是孤立的。它连着:

  • 公司的 PostgreSQL 数据库(不是 localhost)
  • Redis 缓存集群(端口不是 6379)
  • 消息队列 RabbitMQ
  • K8s 集群
  • 各种环境变量和配置中心

这些就是你的「厨房」——锅碗瓢盆放哪、调料在哪个柜子、火的大小怎么调。

AI 生成代码的时候,它假设的是「标准厨房」。 它不知道你的数据库在哪、密码是什么、环境变量叫什么。

真实代价:我的项目上线后,所有 API 请求都在那儿转圈圈。排查了半天才发现——AI 写的数据库连接字符串是 postgresql://localhost:5432/mydb,但生产环境的数据库在云上,地址和端口完全不一样。就因为这一行配置,几十个用户干等了十分钟。

怎么防:

给 AI 一份「厨房说明书」。 在你的项目里建一个 CONTEXT.md 文件,写上:

技术栈:Node.js + Express + PostgreSQL 15 + Redis 7
数据库地址:pg-prod.xxx.com:5432
Redis 地址:redis-cluster.xxx.com:6380
环境变量:见 .env.example
关键约束:所有 API 必须走 /api/v2 前缀

每次开新对话,先把这份说明书粘贴进去。AI 有了上下文,踩坑率直降 50% 以上。


坑三:AI 不会锁门——这是最贵的坑

这是我踩过最贵的坑,没有之一。差点被公司开除的那种。

AI 帮我写了一个后台管理接口,能查订单、改状态、导出报表。功能完美,代码工整。

但它没加任何权限校验。

翻译成人话就是:任何知道这个 URL 的人,都能看到所有用户订单。包括姓名、手机号、收货地址、买了什么东西。

我用了整整两天才意识到这个问题——是一个用户在群里说「我随便改了个 URL 里的 ID 就看到别人的订单了」。

AI 不是安全专家。 它不懂:

  • 「这个接口只有管理员能调」
  • 「这个字段不能返回给前端」
  • 「这个输入需要防 SQL 注入」
  • 「这个上传的文件要检查类型」

它写功能真的只写功能。安保工作默认不存在。

怎么防:两条铁律

铁律一:任何涉及用户数据的接口,写完就问 AI:「这个接口有什么安全隐患?给我列出来。」 它会给你一个清单,对照着逐一修复。

铁律二:敏感操作必须人工加鉴权中间件,不要指望 AI 帮你做好安全。我现在所有项目都有一个 auth.middleware.ts,所有管理接口强制走一遍鉴权,这是底线。

记住一句话:AI 给你的代码是毛坯房装修,好看,但承重墙和水电你得自己检查。


坑四:不考试就毕业,直接上手术台

AI 写的代码最大的问题,不是它会写错——而是你不知道它写得对不对。

不是 AI 会故意出错。而是它的「对」是基于训练数据里最常见的写法,不一定是你的业务逻辑需要的那种「对」。

真实代价:我的电商项目里有一个优惠券系统。规则是「满 200 减 50」和「第二件半价」。AI 把两个优惠叠加在一起算了——满 200 减 50 的基础上又给了第二件半价。一个人买 400 块的东西,能减 150。

我只测了单个逻辑,看起来都对。但没测组合场景。上线后几个小时,系统多减了十多万,只能紧急关掉优惠券功能。

这是我犯的最蠢的错误——不是 AI 写错了,是我没测。

关键洞察:AI 把写代码的速度提了 10 倍,但也悄无声息地偷走了你写测试的习惯。以前手写代码,写完总觉得要测一下。现在 AI 秒出代码,你看着觉得「嗯写得挺好」,就跳过了测试环节。

怎么防:

越是 AI 写的代码,越要写测试。而且:

  • 不只测 happy path,要测边界条件
  • 不只测单个功能,要测组合场景
  • 不追求 100% 覆盖率,但关键业务路径必须有集成测试
  • 优惠券、支付、权限——这三个模块必须人工验证

哪怕就写几个关键的集成测试,都比裸奔上线强一万倍。


坑五:每天都在盖违章建筑

这是最隐蔽、最慢性、但也最致命的坑。

你的流程大概是这样的:

  • 周一:让 AI 加个用户反馈功能
  • 周三:让 AI 改一下订单状态机
  • 周五:让 AI 加个 CSV 导出报表

每一次,AI 都是「增量思维」——在现有代码上叠一层新的。它从不会主动告诉你:「嘿,这段代码已经重复三次了,要不要抽成一个工具函数?」

一个月后,你的代码就像一个城中村:功能都能用,但没人说得清哪条线连着哪。改一个常量,三个页面崩了。删一个「看起来没用」的函数,整个导出功能挂了。

最可怕的是——你让 AI 帮你重构这段代码,它自己写的乱摊子,它比你还看不懂。

怎么防:

每加三个功能,停下来,做一次代码审查。

不需要大动干戈。就做三件事:

  1. 让 AI 扫描一遍最近的提交,问「有什么重复代码可以抽成公共模块?」
  2. 手动看一眼目录结构,问自己「一个新同事能看懂这个项目吗?」
  3. 该删的删、该合并的合并、该重命名的重命名

每次花半小时,就是在还技术债。这笔债你不主动还,它会利滚利,直到你整个项目推倒重来。


总结:AI 是火箭,但你得会开

这五个坑,说到底就一条核心道理:

AI 负责写代码,你负责为代码负责。

用户出问题了,他们不会骂 Cursor,不会骂 Claude,不会骂 GitHub Copilot。他们骂的是你。是你让这个项目上线的。

所以下次你让 AI 帮你写代码的时候,把这张清单贴在显示器旁边:

#一句话防法
1没有异常处理写完就问「出错怎么办」
2不懂你的环境先喂 CONTEXT.md
3没有安全校验自个儿加鉴权中间件
4没写测试AI 写得越快,你越要测
5代码变城中村每三个功能停下来整理

做到这五点,AI 就是你最强的队友;做不到,AI 就是你最坑的队友。

说实话,AI 真的很好用。我到现在每天都在用。但它从来不是一个「替代你思考」的工具——它是个「十倍放大你的执行力」的工具。你的判断力越好,它越强;你的警惕性越差,它炸得越狠。


觉得有用?加我微信一起交流:boyand2164(备注掘金),聊 AI、聊前端、聊搞钱都行。