乐于分享
好东西不私藏

我让 AI 写了一个「会安慰人」的小程序,然后被暖到了

我让 AI 写了一个「会安慰人」的小程序,然后被暖到了

Vibe Coding 到底是什么感觉?

2025 年,Andrej Karpathy 扔出了一个概念,炸遍了技术圈—Vibe Coding。

不是写代码。是说代码!

    你对 AI 描述你想要什么,它写。你看着结果说"嗯,感觉对了"或者"不对,重来"。就像导演对摄影师说"我要那种暖暖的、有点复古的感觉",而不需要亲自扛摄像机。

    听起来很酷。但真的能做出一个有温度的产品吗?

    我决定用自己来当小白鼠。

    要做什么?一个「会安慰你」的心情打卡小程序

需求很简单,也很贪心:

    • 📝 每天记录心情——5 个等级,从 😢 到 🥰

    • 📊 看统计——柱状图、折线图,我这一周到底开不开心

    • 📜 翻历史——回看过去的每一天

    • 🎆 年度报告——深紫色渐变、金色数字、圆环图,仪式感拉满

    • 🤖 AI 情绪反馈——打卡之后,不是冷冰冰的"保存成功",而是 AI 读了你写的原因,给你 2-3 句专属的温暖回复

最后一个功能,是整个产品的灵魂。

这个 AI 反馈是怎么工作的?

每次打卡后,云函数把你选的心情、强度和写的理由,发给 DeepSeek API,举个例子:

  心情:比较开心(强度 4/5)

  原因:今天终于把拖了一个月的方案交了,客户说很满意

DeepSeek 的 system prompt 是这样的:

    「你是一个温暖的情绪陪伴者。根据用户选择的情绪类型、强度和写下的原因,生成 2-3 句个性化的情绪回应。必须基于用户写的具体原因回应。

然后它会回复:

    「拖延一个月的方案终于交了,而且客户还满意——这种如释重负的快乐,太真实了!你值得好好庆祝一下今天。把这份成就感存起来,下次焦虑的时候翻出来看看。

它不是在敷衍你。它真的读了你写的东西

如果 DeepSeek API 挂了怎么办?我准备了一个 55 条手写文案的本地话语库作为降级方案,每一条都是针对不同心情等级精心写的:

• 很难过时 → 「深呼吸一下。生活总有起落,今天的低谷不代表什么」

• 非常开心时 → 「五颗星的快乐!看得出来今天的你能量满满,继续保持这份光芒」

开发过程:我说,AI 做

第 1 步 — 先做一个 HTML 原型

在写小程序之前,我先让 AI 生成了一个 998 行的单文件 HTML——所有的页面、交互、图表,全部在一个 HTML 文件里跑起来。

不是为了上线。是为了快速验证:这个设计对不对?这个交互顺不顺手?颜色看起来舒不舒服?

改了 3 版,确认感觉对了,才进入正式开发。

这就是 Vibe Coding 的核心方法论:先用最低成本把「感觉」验证了,再正式施工。传统开发是「想清楚再写」,Vibe Coding 是「先跑起来看看」。

第 2 步 — 搭架构

微信小程序原生框架 + 微信云开发(CloudBase),serverless,不用管服务器。

架构出奇的简洁:

miniprogram/

    ├── pages/—— 4 个页面:打卡 / 统计 / 历史 / 报告

    ├── components/—— 心情选择器组件

    ├── utils/—— Canvas 图表绘制 + 文案库

    └── app.js—— 全局配置 + 云开发初始化

cloudfunctions/

    ├── addMood/—— 打卡 + DeepSeek AI 反馈 ✨

    ├── getMoods/—— 查询历史记录

    ├── getStats/—— 统计数据聚合

    ├── getAnnualReport/—— 年度报告数据

    └── generateFeedback/—— 独立反馈生成

第 3 步 — 设计系统

这是一个让我惊叹的环节。AI 输出的不是零散的 CSS,而是一套完整的设计规范文档(design-spec.md):

• 紫色品牌色 #6C5CE7 —— 温暖而不冷淡,有个性但不刺眼

• 4px 基准间距体系 —— --space-xxs: 8rpx → --space-3xl: 80rpx

• 五级心情色 —— 从红(难过)到绿(开心),符合直觉

• 10 级字体层级 —— 从 20rpx 小字到 64rpx 大数字

• 年度报告深色渐变 —— #1A0533 → #2D1B69 → #6C5CE7,金色 #FFD700 点睛

每一个间距、每一个圆角、每一个阴影,都有明确的 token。这不是「随便做做」,这是专业 UI 设计师的水准。

第 4 步 — Canvas 图表,不用第三方库

统计页的柱状图、折线图,报告页的圆环图——全部是 Canvas 2D 手写绘制。

没用 ECharts,没用任何图表库。因为微信小程序的 Canvas API 和 Web 版不一样,大部分库不兼容。AI 直接手写了 utils/charts.js,支持:

• 柱状图(五色柱子 + 顶部数值 + 虚线网格)

• 折线图(渐变填充 + 数据点描边 + 4 条网格线)

• 圆环图(按比例分段 + 中心大字 + 图例)

第 5 步 — 踩坑和修复

没有任何项目是一帆风顺的。这个项目踩过的坑:

🔴 AppID 类型陷阱

     现象:开发者工具报 game.json not found

    根因:原来用的 appid 是小游戏的,不是小程序的——微信会按 appid 类型强行切换编译模式

🟠 用户数据不可见

     现象:历史页查不到打卡记录

     根因:客户端 SDK 自动填 _openid,但云函数端 SDK 不自动填——需要手动从 wxContext.OPENID 写入

🟡 云环境错配

     现象:数据库读不到数据

     根因:wx.cloud.init() 硬编码了旧 appid 的云环境——去掉 env 参数让 SDK 自动解析即可

🟢 报告页重复加载

     现象:页面闪烁

    根因:onLoad 和 onShow 都调了 loadReport()——加一个 _loaded 标记去重

每一个坑,都是 AI 和我一起排查、定位、修复的。Vibe Coding 不等于 AI 瞎写,它更像是一个「写代码速度极快但有时候会走神的天才搭档」

真实数字

    手写代码行数:0

    生成代码总量:约 2,500 行(含文档)

    开发周期:2 天(含 HTML 原型验证)

    页面数:4

    云函数数:5

    Canvas 图表类型:3(柱状图 / 折线图 / 圆环图)

    设计规范文档:1 份,904 行

    AI 反馈降级文案:55 条手写

    Git 提交:3 次

    总花费:0 元(微信云开发免费额度 + DeepSeek API 白菜价)

Vibe Coding 到底能不能做产品?

做完这个项目,我的真实感受:

能做的

• 完整的产品闭环 —— 从前端到后端到 AI 集成到设计规范,全部可以

• 高质量 UI —— AI 输出的设计系统不输初级 UI 设计师

• 快速验证 —— 原型 → 正式产品,可以在一周内完成

⚠️ 做不了的(或者说需要人的)

• 平台特有的坑 —— 比如微信小程序的 appid 类型、_openid 行为差异,AI 不知道这些,需要人来踩

• 产品直觉 —— 「这个功能要不要?」「这个交互顺不顺手?」「这句文案暖不暖?」这些判断只能人来下

• 架构决策 —— AI 能实现你指定的架构,但不能替代你决定架构

我的角色变化

以前写代码时,我的角色是「码农」——思考和精力花在「怎么实现」上。

Vibe Coding 后,我的角色变成了「制作人」——思考和精力花在「做什么」「为什么」「感觉对不对」上。

代码从「手段」变成了「细节」。这是一个深刻的变化。

来试试?

如果你也每天有情绪起伏,想被温柔地回应——扫下面的小程序码,今天就可以开始记录。

打卡之后,DeepSeek 会给你一句专属的、读了你的心情后写下的回复。

也许不完美。但它是真的在读你。

最后,想听听你的想法 💬

这个小程序目前还是一个很初期的实验。我想把它继续打磨下去,但需要你的视角:

• 你用过类似的心情记录工具吗?觉得它们做得好的是什么?做得不好的又是什么?

• 你觉得「AI 情绪反馈」对你来说有吸引力吗?是更喜欢 AI 的个性化回复,还是更信任朋友的一对一倾诉?

• 如果你来设计——你会给这个小程序加什么功能?比如:情绪提醒通知、周报推送、好友匿名鼓励……

直接在评论区留言,每一条我都会认真看。

说不定下个版本,你的想法就会出现在里面!

#VibeCoding #AI开发 #微信小程序 #心情打卡 #DeepSeek