从策划到上线:我和 AI 一起做了个微信记账小程序

最近把「记账小助手」做到了能提审的版本(现在是 2.1.0)。技术栈很普通:微信小程序、微信云开发、DeepSeek。代码大概四万多行,没什么黑科技。

想写这篇,主要不是炫功能,而是聊聊:跟 Cursor、Claude、Codex 这类工具一起做完整产品时,怎么配合才不容易翻车。

如果你也在用 AI 写小程序,希望能少踩一点我踩过的坑。

和 AI 一起开发的大致流程:


先看成品长啥样

四个底部入口:首页、账单、省钱、我的。

和市面上记账工具比,我更在意这几件事:

  • 首页是月历,点某一天再记,符合「今天花了啥」的直觉
  • 结婚、带娃、旅行这种事可以开成「场景」,长期记,还能选要不要算进总账
  • 准备花的钱 和已经花出去的钱必须分开,不然预算一填,账本就假了
  • 省钱页可以出 AI 分析,但数字要靠程序算准,模型只负责把话说明白
  • 后来又加了语音、拍照识图、导入微信/支付宝账单,少一点手动敲

首页

账单列表

AI 省钱报告

图片识别

有一条我一直没让步:

AI 认出来的东西,只能当草稿。用户点确认,才能真正入账。

不然识别错一次,账本就脏了,后面再准也没用。


开头别急着写代码

项目最早只有一页《策划.md》,写得很口语:Banner、列表切换、结婚礼金、AI 省钱、订阅消息......看着热闹,但很多地方一开发就打架。

比如「把前一天同步到后一天」------改了前一天,后一天要不要跟着变?点两次会不会记两笔?

再比如「场景预算同步到收支」------婚礼预算填 30 万,总不能首页支出直接蹦出 30 万吧?

所以我跟 AI 说的第一句话不是「开始写」,而是:

根据这个策划,先出一份原型文档我看看。

后来又改了一版,规则写清楚了,才让它在这个目录里初始化项目。

回头看,这一步省下的返工,比后面任何一次「帮我优化一下」都值钱。


设计上我认死理的三件事

1. 钱分三种:预算、计划、实际

  • 预算:我希望这个月别超多少
  • 计划:我预计某天/某月要付一笔(比如婚宴尾款)
  • 实际:钱已经花出去 / 收进来了

只有「实际」进收支。计划到期了也不能自动变支出,得用户确认发生。

场景也一样:一笔账最多挂一个场景;有的场景可以不进总账(比如单独盯婚礼),首页会提示「没算上独立场景」。

2. 没准备好的功能,别放按钮

订阅消息模板没配、DeepSeek 密钥没配、语音插件不可用------入口就藏起来,或者直接写清楚「还没配置好」。

最烦的是点进去没反应。用户会以为 App 坏了,其实是你自己没部署完。

3. 写代码以文档为准,别以 AI 的常识为准

业务规则我基本都放在数据层(store 那一层),页面只负责展示和点按。跟 AI 说话时我会反复强调:

按《原型文档》来,别自己发明一套算法。

大概架构

结构也不复杂:小程序前端,三个云函数(接口、定时任务、AI),数据库按用户隔离。DeepSeek 的密钥只放在云函数环境变量里,绝不进前端包。


我怎么跟这些 AI 工具配合

不是「哪个模型最强就一直用哪个」,更像换工种:

  • 改文档、挑逻辑漏洞:Claude / Codex 都行,让它对着策划找矛盾
  • 大块功能往下做:还是它们,按版本一点点啃,顺便让它补测试
  • 真机出问题、改文案、改提示:我更爱用 Cursor,对着截图改最快
  • 换工具接着干:用会话同步把「做到哪了、坑是什么」记一小段,新对话先读再动手

聊天一长,AI 就容易忘事;换个工具更容易断层。所以重要决定我会让它记成短笔记,比如:

  • 识图别走「AI 报告」那条长任务流程,单独做一次解析就行
  • 用户确认入账时,每条记录自己防重复,别搞成「整批只能提交一次」
  • 识图授权和 AI 分析授权要分开------分析页说好了不上传图片,识图却必须上传,混用早晚出事故

跟 AI 说话,我一般怎么说

开新功能时,我会写清楚边界,大概是这种:

text 复制代码
按《原型文档》某某章节做 xxx。
规则只改数据层和云函数校验,页面别绕开。
没配置好的能力不要放入口。
中英文文案一起改。
做完自己跑测试,别只说「应该没问题」。

真机坏了就更直接:

text 复制代码
(附图)我点了 A,期望 B,实际变成了 C。
先猜可能是代码问题、云函数没更新、配置没配对,还是微信平台限制。
改得越少越好,别顺手重构。

收尾时:

text 复制代码
对照原型和 README,列一下:做完了的、代码写了但还没真机验的、明确不做的。
别把「没部署」写成「没开发」。

合作上真正管用的几件事

先文档,后代码

顺序反了会很惨。一旦页面都写完了,再改「计划算不算支出」,那不是改几个文件,是整本账的口径都要重算。

按版本做,别一口吃完

  • 1.0:能记、能算、场景和预算跑通
  • 1.1:分享导出、定时记账、提醒
  • 1.2:AI 省钱和报告
  • 2.x:语音、识图、导入账单

每一版我都会写「这版不做啥」。比如 Excel 导出、真 PDF,收益不值成本,直接砍掉,省得 AI 自作主张塞一堆依赖。

少形容词,多截图

「语音不好用」「AI 没出来」------AI 基本帮不上忙。

有效的是:整屏截图、控制台原文、你点的是哪个按钮。

我们真实遇到过:功能本地有,发布后「我的」里看不见 AI 入口。后来发现是上传的还是旧包。于是版本号统一写在一个配置里,「我的」页底部必须能对得上这次上传的版本。

微信的限制,当产品规则写,别当 Bug 修

导入账单时,会先弹出「选择一个聊天」:

很多人第一反应是「咋跳到转发了?」其实是微信规定:小程序选文件,得从聊天附件里挑。正确用法是先把账单发到「文件传输助手」,再回来选。

我们后来把这层说明写进页面和「导入提示」里,比硬刚本地文件选择器管用。

类似还有:订阅消息一次只能攒一条额度;开发者工具开了灰度基础库,插件可能直接挂;有些云开发常量不能当普通字符串去拼。

改账本规则,一定要带测试

AI 「顺手优化」时,最容易把婚礼预算算进本月支出。所以规则一变,测试一起改。项目里一直挂着一串检查:账对不对、同步会不会丢、分享链会不会泄、页面入口齐不齐。


几个后来证明挺值的做法

本地先能用,云用来备份。

不登录也能记账;连上云之后,主要是换机恢复。冲突时不能简单「云端永远覆盖本地」,不然刚记的一笔可能凭空消失。

AI 报告:程序算数,模型写话。

花了多少、占比多少、比上月怎样,全部程序算。模型只在这些数字上写观察和建议;瞎编的数字直接丢掉。模型挂了,至少还能给一份干巴巴的统计,别留白页。

识图别跟长报告挤同一条管子。

出报告可以慢慢跑、可重试、有历史。拍照记账是当场交互,硬塞进去反而各种门禁打架。图片也是传到云里再由云函数下载处理,不拿临时公网链接把账单截图晾出去。

同一操作点两次,不能多出一笔账。

复制昨天、定时补跑、确认计划、确认识别结果......这些都得自己防重复。记账 App 这点要是不严,用户信任一下就没了。


上线前,卡人的往往不是代码

代码测通了,不代表用户能用。我后来列了个很土的清单:

  1. 云函数上传了没有(尤其是 AI 那个,超时时间别太短)
  2. 数据库集合建齐了没有,权限对不对
  3. DeepSeek 密钥配上了没有
  4. 订阅消息真机能不能弹、能不能收到
  5. 导出的图片能不能进相册,CSV 能不能用 WPS 打开
  6. 「我的」里的版本号,是不是这次刚传的包

有次识图一直提示「服务暂时不可用」。前端报错文案很笼统,查下去发现云函数还是旧的,新接口根本没传上去。云端控制台测一下 ping,立刻就能看出来新旧。

所以:功能没出来,先别骂前端,先看看云上是不是还睡在上个版本。


大概怎么走过来的

  1. 一页策划 → AI 出原型 → 我改规则
  2. 1.0:四个 Tab 能记能算
  3. 1.1:分享、定时、提醒
  4. 1.2:AI 报告
  5. 2.x:语音、识图、导入,版本到 2.1.0

中间还处理过底部图标全挂、深色模式、中英文文案对不齐、客服改走微信原生会话这类「不算功能但很烦人」的事。


如果你也想这么干,我建议

  1. 先逼出一页能照着写的原型:概念、页面、这版做什么、明确不做什么
  2. 技术边界先定死(比如就用云开发、只做人民币、个人账本),少给 AI 自由发挥空间
  3. 一次只推进一个大目标
  4. 真机问题务必附图,先分清是代码、部署,还是微信限制
  5. 重要决定写成短笔记,换工具接着干时先读
  6. 用测试护住算账规则

不太建议的:

  • 一句话「帮我做个记账 App」就指望能上架
  • 让 AI 同时加功能、改架构、换全套 UI
  • 模拟器能点就当上线了
  • 把密钥塞进前端

后面还想做消费画像、账户余额、多人账本之类,但先放着。记得到、算得清、能备份、能分析,比先上花活更重要。


最后

AI 很会把「已经写清楚的规则」铺成代码;人更适合在「规则还没想清楚」时拍板。

这个小程序能从文件夹里两份 Markdown,走到能提审,靠的不是哪一次神级提示词,而是:文档先于代码、版本别贪大、出问题就甩截图、规则有测试托着、上线前把部署核一遍。

你要是也在用 AI 做完整产品,评论区聊聊------你遇到过最离谱的一次「本地好好的,一发布就没了」是啥?


相关推荐
Shirley~~1 小时前
Three.js加载Gltf模型并播放动画
前端·3d
Data analyse4561 小时前
Session超时与浏览器休眠的计时校验
大数据·前端·数据库·数据分析
星始流年2 小时前
AI 时代,软件程序员未来 10—15 年的职业前景
前端·后端·ai编程
Captaincc2 小时前
# 实习生A视角来了 | 2024 年字节跳动前实习生 (Tian Keyu) 模型训练攻击事件:受害者陈述与证据整理
ai编程
猪猪拆迁队2 小时前
跨电脑复制共享-局域网直连踩坑
前端·后端·go
静默回滚2 小时前
逐帧处理视频的内存去哪了,我从看错读数查到没排队
前端
挖掘狂人2 小时前
AI 一天写的代码多了 30%,软件却没多出一个
人工智能·ai编程
sg_knight2 小时前
Claude Desktop 的 Chat 模式实测:桌面端比网页版多出来的能力
llm·agent·ai编程·claude·anthropic·claude-code
重庆穿山甲2 小时前
我们不做「看起来很聪明」的知识库:一套企业级 RAG 平台的 37 屏真机实录
前端