我用AI写了整个小程序,附完整方法论

0 阅读10分钟

不写PRD、不画原型、不搞技术方案——从一个想法到上线一个完整的微信小程序,我只用了AI和碎片时间。这篇不只讲我做了什么,更重要的是怎么做的方法论——你可以直接复用到自己的项目上。


先说结论:Vibe Coding的核心方法论

在展开细节之前,先把方法论讲清楚。这套方法论不只适用于我的项目,任何个人开发者用AI做产品都可以套用:

原则一:想清楚"做什么",把"怎么写"交给AI

你的时间应该花在产品思考上——解决什么问题、核心体验是什么、用户路径怎么走。代码实现、数据处理、算法调优,这些让AI来。

原则二:先跑通再完美

不要一开始就追求完美架构。先用Mock数据跑通核心链路,确认体验OK,再逐步替换成真实实现。

原则三:对话式开发,快速迭代

跟AI的协作不是"写需求文档→交付代码"的瀑布流,而是高频对话:我说一句、AI做一步、我看效果、再调整。每轮迭代控制在5-10分钟。

原则四:让AI做重复劳动,你做决策

数据录入、格式转换、样板代码、调试排错——这些重复劳动全部交给AI。你只需要做那些需要判断力的决策。


第一步:技术选型(花10分钟想清楚)

Vibe Coding不代表不思考。技术选型要快速决策,但不能不决策。

我的选型思路是一句话排除法

方案 一句话排除理由 结论
App 我没有iOS/Android经验,上架周期长
H5网页 无法调用设备振动、分享链路弱
微信小程序+云开发 零运维、LBS原生、目标用户就在微信里

方法论提炼: 个人项目选技术栈的核心标准不是"最优",而是**"最快能跑通的"**。云开发让我不用关心服务器、域名、部署——少一个环节就少一个卡住的可能。


第二步:确定MVP功能(只做必须有的)

很多个人项目死在"想做的太多"。Vibe Coding的关键是快速验证,所以MVP只留核心链路:

选场景 → 帮你决定(随机推荐)→ 查看详情 → 导航过去 → 打卡记录

砍掉的功能: 评论系统、好友排行、积分商城、路线规划……这些都是"有了更好"但不是"没有不行"的。

方法论提炼: 问自己一个问题——"如果这个功能没有,用户还会用吗?" 如果答案是"会",那就先不做。


第三步:数据先行(AI生成 + 人工校验)

一个推荐类产品,没有数据什么都是空的。但手动录入167个景点的详细信息?至少一周。

我的做法:

  1. AI批量生成:告诉AI"列出杭州适合带娃/约会/聚会的景点",给出格式要求(名称、地址、坐标、品类、适合年龄、设施、标签等)
  2. 高德API补充:用坐标数据调高德API补充精确地址和周边信息
  3. 人工校验:抽检20%的数据确认准确性,修正明显错误

一天完成了原本一周的工作量。

方法论提炼: AI生成数据的正确姿势是"批量生成 + 抽样校验",不是"逐条确认"。信任但验证(Trust but verify)。给AI明确的数据格式和字段约束,生成质量会高很多。


第四步:架构设计(让AI给方案,你做选择)

我没有自己设计架构。而是这样做的:

"我要做一个周末活动推荐小程序,微信云开发,需要这些功能……你帮我设计一下架构,列出需要哪些云函数、数据库集合、前端页面。"

AI给了方案,我做了两个调整就定稿了。

架构图

最终架构很简单——三层:

  • 前端:5个页面 + 5个组件
  • 云函数:6个核心函数
  • 云数据库:4个集合

方法论提炼: 不要从零开始设计架构。告诉AI你的需求和约束,让它给初版方案,你只需要基于经验做微调。这比自己从白纸开始快10倍。


第五步:核心算法(与AI对话式迭代)

推荐算法是这个产品的核心差异化。我跟AI的协作过程是这样的:

第1轮对话: 我说需求

"用户打卡过的地方要影响后续推荐,去过博物馆就多推文化类。但不能一直推同一类,要有探索性。"

AI给了基础方案:品类打分 + 随机因子。

第2轮对话: 我提问题

"如果用户一年前喜欢游乐场,但最近都在去博物馆,怎么办?应该更关注近期偏好吧?"

AI引入了指数衰减模型(每次新打卡,旧偏好乘以0.85衰减)。

第3轮对话: 我提边界情况

"新景点只有一个人打了1星,评分就是1.0,太不稳定了怎么办?"

AI给了锚定基础分的方案(预设3个虚拟4分评价作为锚点)。

最终公式:

总分 = 评分分(30%) + 人气分(10%) + 偏好分(40%) + 鲜度分(15%) + 随机因子(5%)

三轮对话,算法从无到有。 每轮不超过5分钟。

方法论提炼: 跟AI讨论算法的最佳姿势是——"先说需求,再提问题,最后扔边界情况"。不要一次说完所有需求,分步迭代效果更好。AI很擅长基于你的反馈逐步完善方案。


第六步:开发节奏(碎片时间也能持续推进)

我没有整块的时间做这个项目,全靠碎片时间。能持续推进的关键是每次会话有明确目标

时间段 可用时间 做什么
通勤路上 20分钟 想产品逻辑,记到备忘录
午休 30分钟 让AI写一个云函数
晚上哄娃后 1小时 联调一个完整功能链路
周末 2-3小时 集中处理需要调试的部分

方法论提炼: Vibe Coding特别适合碎片时间开发。关键是每次会话开始时,用一句话告诉AI你要做什么,让它快速进入上下文。比如:"继续昨天的打卡功能,现在要加照片上传"。


第七步:体验优化(用户感知 > 技术完美)

功能做完不等于体验好。这里分享几个我用AI快速优化体验的具体例子:

优化1:让等待变有趣

"帮你决定"如果直接出结果,用户感知太快、没有仪式感。

让AI加的效果: 12帧老虎机滚动动画,间隔从80ms递增到230ms(缓出曲线),最后一帧触发手机振动。把"查询结果"变成了"开奖体验"。

优化2:让慢操作感觉快

照片上传要5秒,但用户不该等5秒。

策略: 选照片的瞬间就后台上传(预上传),点提交时照片早已传完。用户感知是"秒过"。

优化3:让失败无感知

GPS定位可能超时、天气API可能挂掉、云函数可能冷启动——但用户不需要看到任何错误。

策略: 每个外部依赖都有兜底方案。定位超时→用默认坐标;天气挂了→显示"晴天25度";云函数不可用→降级到本地Mock数据。

方法论提炼: 体验优化的核心不是"技术上做到最快",而是**"让用户感觉快"**。预加载、乐观更新、优雅降级——这三板斧可以解决80%的体验问题。告诉AI你的体验目标(而不是技术目标),它通常能给出很好的方案。


第八步:与AI协作的Prompt技巧

用了这么久AI辅助开发,总结几条实用的Prompt技巧:

技巧1:给上下文,不给实现

❌ "帮我写一个排序函数" ✅ "我在做一个景点推荐系统,需要根据用户偏好对景点列表排序,偏好数据结构是这样的……你帮我实现排序逻辑"

带上下文的prompt,AI输出的代码跟你的项目更契合。

技巧2:先让AI给方案,再要代码

❌ "直接帮我写推荐算法的代码" ✅ "我需要一个推荐算法,你先说一下设计思路和各因子权重,我确认后再写代码"

先对齐思路可以避免"写了一堆然后推倒重来"。

技巧3:贴错误信息时加上你的猜测

❌ "这个报错帮我看看:[报错信息]" ✅ "这个报错帮我看看:[报错信息]。我猜是云函数的权限问题,因为本地跑没问题,部署后才报错"

你的猜测帮AI缩小排查范围,解决速度快一倍。

技巧4:让AI生成测试数据

与其自己造假数据测试,不如:"帮我生成10条不同场景的打卡记录测试数据,包含高分低分、有图无图、不同品类"。AI生成的测试数据覆盖面比你手造的全。


踩过的坑(附解决思路)

现象 解决思路
定位超时 室内GPS冷启动10秒+ 2秒超时+默认坐标兜底
云函数冷启动 首次调用3秒延迟 Promise.all并发+预热
HTTP图片被拦 线上图片不显示 前端+后端双重HTTP→HTTPS转换
开发环境不稳定 云函数偶尔不可用 cloud.js封装层自动降级Mock
照片上传慢 提交后等待5-6秒 选择即上传(预上传策略)

方法论提炼: 大部分坑的解法都遵循同一个模式——"设置超时 + 准备兜底方案"。跟AI说"这个操作可能失败或超时,帮我加一个降级方案",它就能帮你处理好。


项目成果

  • 景点数量:167个(覆盖杭州主要遛娃/约会/聚会地点)
  • 支持场景:4个(带娃、约会、聚会、独处)
  • 景点品类:8大类(自然风光、主题乐园、文化教育、商业综合体、运动健身、创意手作、动植物园、城市公园)
  • 开发方式:全程Vibe Coding,碎片时间推进
  • AI贡献占比:约70%的代码由AI生成,我负责产品设计、Review和调整

总结:一套可复用的Vibe Coding工作流

把上面的步骤提炼成一套通用流程:

1. 想痛点(你自己遇到的问题就是最好的切入点)
      ↓
2. 定MVP(只做"没有不行"的功能,其他全砍)
      ↓
3. 选技术栈(标准:最快能跑通,不是最优)
      ↓
4. AI生成数据(批量生成 + 抽样校验)
      ↓
5. AI给架构(你只做微调,不从零设计)
      ↓
6. 对话式开发(需求→方案→代码→反馈→迭代)
      ↓
7. 体验打磨(预加载、乐观更新、优雅降级)
      ↓
8. 上线验证(先让身边人用,收集真实反馈)

Vibe Coding的本质: 把AI当作一个不知疲倦的技术搭档。你负责方向和决策,它负责执行和实现。门槛降低了,但思考不能少——"做什么"和"为什么这么做",永远是人的工作。

下一篇,聊聊这个小程序上线后遇到的困境。


c.png

逐光·AI实战手记