从玩具到上线:MVP 部署、安全与"AI 写的代码能用吗"
我加了三四个 Vibe Coding 的社群,时间长了我观察到一个很扎心的事:
Vibe Coding 指南 · 第 08 篇 · 系列收官
😶 一个让人脸红的统计
我加了三四个 Vibe Coding 的社群,时间长了我观察到一个很扎心的事:
90% 的人,做出了 demo。10% 的人,跑通了 MVP。1% 的人,让真用户用上了。
为什么?
因为大部分人到了 demo 阶段,就开始"再加个功能"——加完一个又一个,越加越多,最终累得没力气上线。或者,临到上线发现"咦,我的 API key 是不是裸露在代码里?"、"咦,鉴权好像没做"、"咦,要部署到哪?怎么搞域名?"——一连串问号,把上线的劲儿磨没了。
Demo 不是终点。能用、可用、有人在用——才是。
这一篇是系列的收官,专门讲怎么把你的 Vibe Coded 产品从"玩具"推到"真用户面前"。
包括三件事:
- MVP 收尾:怎么判断够了、别再加功能
- 安全 Pass:让 AI 帮你过一遍上线前的检查
- 部署落地:Vercel + 域名 + 数据库的最简栈
最后回应一个绕不开的争议——"AI 写的代码到底能不能用?"
🛑 MVP 收尾:管住"再加一个功能"的手
一个反直觉的规则
Vibe Coding 因为太爽了,会让你陷入一种**"加功能上瘾"**的状态。
你做出了登录、报告生成、PDF 导出。然后你想——"诶,要不要加个分享?"加完——"那协作呢?"加完——"加个 AI 自动总结?"
停。
按理说"加功能"是好事——但你忘了:每加一个功能,都会破坏你已经测试过的东西、引入新 bug、让上线时间往后推一周。
MVP 的 M 是 Minimum——最小可行。它的核心精神是"先让一个用户用起来,剩下的看反馈再说"。
怎么判断"够了"?
下面这张 checklist,每条都打勾,就上线:
[ ] PRD 里的 3 个 P0 功能全部跑通
[ ] 关键路径(用户从打开到完成核心动作)<30 秒
[ ] 没有阻塞性 bug(点了不响应、报错就崩)
[ ] 至少自己使用过 3 次,不感到痛苦
[ ] 有一个目标用户答应试用(你心里那个第一个用户)
[ ] 知道你想从用户那里学什么(最关键的反馈问题)
全部打勾 → 上线。不全 → 想办法补这几条,不要加新功能。
一个精妙的类比
MVP 上线就像给朋友请客。
- 错误做法:菜准备 30 道,桌子布置 3 小时,结果客人已经饿走了
- 正确做法:4 个菜 + 1 个汤,朋友坐下就吃,吃完聊"下次想吃啥"
你的第一个用户就是来吃 4 个菜的,不是来吃满汉全席的。
🖼️ 图片建议: 两幅对比图。左边:"功能加成瘾"——一个程序员对着电脑加菜,桌上 20 道菜,朋友已经在门外离开。右边:"MVP 上线"——4 道菜简单上桌,朋友愉快开吃,背景是"反馈→优化→再上"的循环箭头。
🛡️ 上线前的安全 Pass(这一节别跳过)
这是 Vibe Coding 最容易翻车的地方——因为 AI 不会主动帮你想安全。
你让 AI 写"用户登录功能",它就老老实实写登录。但它不会跟你说:
- "你这个 .env 文件没加到 .gitignore,API key 推到 GitHub 就泄露了"
- "你前端直接调用了 OpenAI,用户 F12 就能看到你的 key"
- "你的 admin 接口没鉴权,用户改个 URL 就能操作别人数据"
这些不是 AI 不智能,是 AI 在等你"问"。
上线前必跑的 5 个检查
打开你的项目,跟 AI 说这段话——这是一个非常好用的"安全审查咒语":
ultrathink,请对项目做完整的上线前安全审查,
按以下 5 个维度列出所有发现的问题:
1. 【密钥泄露】
- 检查 .env / .env.local 是否在 .gitignore
- 检查代码里是否硬编码了 API key、密码、token
- 检查前端代码里是否暴露了应该只在服务端的密钥
2. 【鉴权与授权】
- 列出所有 API 路由,每个标注鉴权状态
- 找出"未登录可访问"的接口(看是否真该开放)
- 找出"用户 A 能访问用户 B 数据"的漏洞
3. 【输入校验】
- 检查所有用户输入字段(form / URL params / body)
- 标注哪些没做长度限制、类型校验、特殊字符过滤
- SQL 注入 / XSS 风险点
4. 【依赖安全】
- 跑 npm audit 看有没有已知漏洞的依赖
- 列出大版本过旧的关键库
5. 【生产配置】
- DEBUG 模式是否关闭
- 错误信息是否还在向用户暴露内部细节
- 速率限制 / 防刷是否到位
按【严重程度】排序输出,每个问题给修复建议。
AI 会给你一个长清单。 你按严重程度,从高到低修。
关键判断:所有"高"严重程度问题必须修。中和低的可以等上线后再修。
三个最常见的低级错误(我自己都犯过)
错误 1:.env 文件推到 GitHub
修复:
# 在 .gitignore 加一行
.env
.env.local
# 然后从 git 历史删除(如果已经推了)
git rm --cached .env
git commit -m "remove .env from tracking"
而且 API key 已经泄露的,必须去 OpenAI/Supabase 控制台轮换一次。
错误 2:API key 写在前端
如果你直接在 React 组件里写:
const response = await fetch('https://api.openai.com/v1/chat/completions', {
headers: { 'Authorization': `Bearer ${OPENAI_KEY}` }
});
用户 F12 就能看到你的 key。每月几百美元的账单等着你。
正确做法:所有调用第三方 API 的代码必须在服务端(Next.js 的 API Routes / 后端函数)。前端只调用你自己的服务端 API。
错误 3:admin 接口不鉴权
你写了一个 /api/delete-all-reports 用来管理后台用。但没加鉴权——任何人构造 URL 都能调。
修复:所有 admin / 内部接口必须加鉴权中间件,检查 session 或 token。
🖼️ 图片建议: 一张"安全门"插画。一个房子门口贴着 5 个锁,每个锁标着一个检查项(密钥、鉴权、输入、依赖、配置)。门内是温馨的房间(你的应用),门外是一群黑帽小人物("用户")。色调一半危险红、一半安全绿。
🚀 部署:3 步把你的应用推上线
技术栈如果是 Next.js + Supabase(第 03 篇推荐的栈),部署超级简单:
Step 1:推 GitHub
# 在项目目录
git remote add origin https://github.com/你的用户名/项目名.git
git branch -M main
git push -u origin main
不会用 GitHub?让 AI 教你:
我从来没用过 GitHub。一步步教我:
1. 怎么注册 GitHub 账号
2. 怎么创建一个新仓库
3. 怎么把当前项目推上去
4. 把每步要敲的命令完整给我
Step 2:连 Vercel
- 打开 vercel.com,用 GitHub 账号登录
- 点 "Add New Project"
- 选你刚才推上去的仓库
- 不用改任何设置,直接 "Deploy"
- 等 2 分钟
完事了。你拿到一个 xxx.vercel.app 的网址,可以分享给任何人。
Step 3:配置环境变量
如果你用了 Supabase 或 OpenAI API:
- 在 Vercel 项目里,点 Settings → Environment Variables
- 把所有
.env.local里的变量都加进去(OPENAI_API_KEY、SUPABASE_URL 等) - 触发一次重新部署
Step 4(可选):绑定自己的域名
- 在 Namecheap / Cloudflare 等域名服务商买一个域名(10 刀/年起)
- 在 Vercel 项目里 Settings → Domains 添加你的域名
- 按 Vercel 提示在域名服务商那边配 DNS 记录
- 等 10 分钟 - 几小时,域名就生效了
整个流程不到 30 分钟。 这就是 2026 年的部署难度——比你点外卖还简单。
🖼️ 图片建议: 一张"部署流水线"图。从左到右四个阶段:本地代码 → GitHub → Vercel → 你的域名。每个阶段下面标耗时(5 分钟 / 2 分钟 / 2 分钟 / 30 分钟)。最右边画一个手机屏幕显示你的网站,旁边几个小人物(用户)开始用。
🤔 那个绕不开的问题:"AI 写的代码能用吗?"
这是 Vibe Coding 圈最大的争议。
我给你一个诚实的回答——分场景。
场景 1:小工具 / 个人项目 / 内部工具
完全能用。放心搞。
这种场景的特点:
- 用户少(你自己 / 同事几个人)
- 数据不敏感(不涉及钱、医疗、隐私)
- 出问题影响小(最多重启一下)
- 你能持续维护(出 bug 你能继续让 AI 修)
这类项目,Vibe Coding 写出的代码质量已经超过很多人工写的。我自己做了七八个,没一个翻过车。
场景 2:面向公开用户的产品
能用,但你必须做好"工程师"的部分。
这种场景的特点:
- 用户量可能上百、上千
- 涉及账号、支付、数据存储
- 出问题影响品牌口碑
这种项目,AI 写完代码后,你必须额外做:
- ✅ 完整的安全审查(前面那 5 个维度)
- ✅ 错误监控(接入 Sentry 等工具,第一时间知道线上崩溃)
- ✅ 数据备份(定期备份数据库,别让一次操作毁掉所有数据)
- ✅ 日志记录(关键操作有日志,方便排查)
- ✅ 测试覆盖(至少核心路径有测试)
做完这些,AI 写的代码也能跑生产。 但代价是——你得花相当于"再写一遍"的时间做工程化。
场景 3:金融 / 医疗 / 安全关键系统
不要 Vibe Coding,至少不要纯 Vibe Coding。
这类系统的特点:
- 一个 bug 损失上千万 / 影响生命
- 监管要求高(合规、审计)
- 需要专业知识背景
这种你应该:
- 让 AI 帮你写"工具型代码"(数据转换、内部脚本)
- 核心业务逻辑必须人工编写或者人工逐行审核
- 引入正式的代码审查流程
Belitsoft 的警告:亚马逊的 2026 教训
2026 年 10 月,Belitsoft 报道了一次大事件——亚马逊的一次大规模生产故障,事后查明根因是 GenAI 辅助修改的代码。
具体什么 bug 没披露,但圈里讨论:是 AI 写的代码在边界条件下表现异常,绕过了人工评审。
这是一个警示:再聪明的 AI,写生产代码都不能完全替代人工审核。
Vibe Coding 不是免责金牌。 你最终为产品负责。
🖼️ 图片建议: 一张三色风险等级图。左边绿色"个人工具"——AI 写、人来用,简笔画一个人在小机器人帮助下做小工具;中间黄色"公开产品"——AI 写、工程师审、监控兜底;右边红色"金融/医疗"——人写为主、AI 辅助,标注"高风险,慎用"。
🎁 上线之后:你要养成的 3 个习惯
部署完不是结束。下面这 3 个习惯能让你的产品越做越好:
习惯 1:每周看一次错误日志
接入 Sentry(免费版够用)或者用 Vercel 自带的 logs。每周固定时间扫一眼,发现有报错的功能立刻让 AI 修。
不看的代价:你的用户在默默忍受 bug,然后不告诉你就走了。
习惯 2:每月跟用户聊一次
如果你的产品有几个真实用户——每个月找其中一两个聊 15 分钟:
- "你最近用这个工具几次?"
- "最近一次用是为了啥?"
- "有没有什么操作让你觉得卡?"
- "你最希望多哪个功能?"
没用户反馈的产品就是闭门造车。
习惯 3:每季度技术债盘点
让 AI 帮你做一次:
ultrathink,盘点当前项目的技术债:
1. 哪些文件超过 300 行,需要拆?
2. 有哪些"临时"代码已经变成"永久"?
3. 哪些依赖该升级了?
4. 安全审查复跑一次,有新问题吗?
按严重程度排序,给出修复建议。
每季度花一天清一次债。这是产品长寿的秘诀。
🧘 系列收尾:我想说的真心话
8 篇文章写完了,我想对你说点真心话。
Vibe Coding 不是让你不学编程
很多人以为 Vibe Coding 是"不学编程就能写代码"。
不是。 它是让你学的重点变了——
- 你不用学 for 循环、Hook、Webpack
- 你要学:怎么把需求讲清楚、怎么拆模块、怎么读代码大致结构、怎么 debug
这些恰恰是工程师里最稀缺、最值钱的能力。
Vibe Coding 让普通人能直接学这些"上层能力"——这是真正的解放。
Vibe Coding 不是银弹
如果你是抱着"我什么都不学,AI 替我搞定一切"的心态来——会失望的。
AI 是放大器。你脑子里清楚想要什么,AI 把你的想法放大 10 倍交付出来;你脑子里一团糟,AI 把你的混乱放大 10 倍砸到屏幕上。
所以最重要的能力还是——想清楚。
Vibe Coding 让"造软件"回到了普通人手里
最后说一件让我有点感慨的事。
在过去 20 年里,"造软件"是少数人的特权——必须懂代码、懂框架、懂部署。普通人有想法,只能写需求文档求工程师怜悯。
2026 年的今天,这个特权被打破了。
我见过:
- 一个语文老师做了一个给自己班用的作文批改工具
- 一个 HR 做了一个面试评估打分系统,HR 部门全员都在用
- 一个母婴博主做了一个辅食制作灵感生成器,几千粉丝在用
- 一个独立设计师做了自己的作品集网站,把"找前端的钱"省了
这些人,在 2024 年都不可能办到。
这就是 Vibe Coding 真正的意义。
它不是关于 AI、不是关于代码、不是关于效率——
它是关于让所有人,都能把自己的想法变成现实。
🎬 给读者最后的一句话
如果你看完了这 8 篇,但还没动手——那就白看了。
今晚就开始。
- 想一个你脑子里挂了很久的小工具
- 装 Cursor 或 Claude Code
- 按第 03 篇跑一遍 PRD
- 按第 05 篇跑一遍循环
- 哪怕只做出一个简陋的 demo——你都已经超过 90% 的人了
别等"哪天有空"。"哪天"永远不会来。
📚 系列回顾
8 篇文章,路径完整:
| # | 标题 | 核心 |
|---|---|---|
| 01 | Vibe Coding 到底是个啥 | 概念 + 心法 |
| 02 | Vibe Coding 工具地图 | 四层工具栈 |
| 03 | 规划就是一切 | 三份文档 |
| 04 | AGENTS.md 与记忆库 | AI 的项目记忆 |
| 05 | 结对编程实战 | Plan-Execute-Verify 循环 |
| 06 | Prompt、Skills、MCP | 三大外挂 |
| 07 | Debug、回滚、上下文爆炸 | 8 个救命技巧 |
| 08 | 从玩具到上线(本篇) | MVP 收尾 + 部署 + 心态 |
收藏起来,每隔一段时间回头看一看。 你每次重读,都会有新理解——因为那时候你的实战经验已经更多了。
🙏 写在最后
谢谢你能看到这里。
这个系列写下来差不多 3 万字,是我把过去一年所有翻车、所有顿悟、所有压箱底的实战经验拿出来的总和。
没有任何保留。
如果它能帮你在 2026 年做出一个让你自豪的小项目——那就值了。
后会有期。
——面包君
🖼️ 图片建议: 一张"启程"风格的最终图。一个人背着行囊,站在山顶。脚下是 8 块石头组成的台阶(每块标一篇文章名),通向远方的城市("你的第一个上线作品")。天空有一行字:"Vibe On, Friend." 色调温暖、明亮,带一点告别但更多希望。