ARTICLE · 1156085
AI 做小程序,真正的坎在代码写完之后
上个月我把一个班级打卡小程序做上线了。
学生在手机上打卡,传作业,老师在网页后台看全班进度,一键导出表格。
AI 把主要页面一天就写完了。我从头到尾没写过一行业务代码。
真正花时间的,是代码写完之后的两个星期。
先看一眼做出来的东西。

学生端小程序 + 老师端网页后台,两端共用同一份数据

学生端打卡页:填一次姓名和班级,之后只显示自己的记录
老师端是一个网页后台,学生一提交,数据实时同步过来。
功能不复杂。麻烦全在把它变成「真的能用」的路上。
我把这些坑写下来。如果你也在用 AI 做小程序,大概率会撞上同几个。
1. 数据在两边,连不上
学生端是小程序,老师端是网页后台,这两个东西是分开做的。
做完才发现,两边的云环境是隔离的。学生打了个卡,老师的后台看不到。

老师端总览:按日期和班级看全班打卡状态
我的第一反应是把老师端也塞进小程序里。想了想不对,老师要在电脑上看全班的表格,网页更合适。
然后我去试了第三方数据库,把两端的读写全改了一遍。改到一半发现成本比预想的高,又全部退了回来。
最后用的办法最笨:让两端接同一个云环境,同一批数据表。
后台顶部那行小字,「与学生端小程序数据实时同步」,就是这件事的结论。
开工之前先回答一个问题:这两端的数据要不要放在同一个地方。答案是要,就从第一天起选能共享的方案。等代码写完再想,两头都要返工。
2. 登录方式,按谁的习惯定
老师端需要登录。
云平台自带的登录,在网页端只支持邮箱。

老师端登录页:账号由管理员分配
问题在于,老师这个群体,日常用的是手机号。
你让他们为了看个打卡记录去注册邮箱,这一步就会走掉一半人。
所以我自己做了一套账号。管理员在后台建账号、分配密码,老师拿到就能用。

账号管理:密码加密存储,服务端不留明文,按角色分配权限
密码加密存储,服务端不存明文。分了角色,老师登录之后只能用打卡功能,动不了账号管理。
这一段没有技术难度,但它决定了别人愿不愿意用你的东西。
给非技术的人做工具,登录方式按对方的习惯来定。你的方便,排在后面。
3. 本地能跑,线上登不进
这是我卡得最久的一个。
本地预览,一切正常。一放到正式环境,登录失败。
报错的样子,看起来特别像代码写错了。我盯着代码看了很久。
真实原因是:登录态校验认域名。只有发布之后、带 HTTPS 的正式域名,才在允许名单里。本地预览不在这个名单里。
这类问题的麻烦在于,它不像 bug。代码没毛病,你只会觉得「怎么线上和本地不一样」。
我的做法是给自己立了个规矩:凡是带登录的东西,写完第一时间发到一个正式域名上测。
本地预览只能证明界面没问题,证明不了登录没问题。
4. 权限不开,数据读不到
后台页面都做完了,我打开列表,空的。
数据库里明明有数据,页面一条都读不出来。
查了半天代码,最后发现是数据权限策略没开。策略不开,所有请求都会被挡在外面,而且报错很不明显。
顺手做了另一件事:身份隔离。
学生第一次进来,填姓名和班级,小程序记住这个身份,之后只显示他自己的打卡记录。
不做这一步,每个学生都能看到全班的记录,包括别的孩子交了什么作业。
页面空白的时候,先查权限,再查代码。顺序反了,你会浪费一个下午。
5. 一些零碎但必要的决定
附件上传,图片一次最多 9 张,视频和音频各 1 个,可以重复添加。这个限制是平台定的,提前告诉学生,比让他们上传失败再来问要好。
导出做了 4 种:打卡明细、学生汇总、按日汇总、原始记录。CSV 带 BOM,Excel 和 WPS 打开中文不乱码。

导出数据:4 种口径,按日期和班级选范围
明细页里能看到每条记录的作业附件,图片有缩略图,点开能看大图。

打卡明细:按学生、班级、日期区间查,带作业附件
删错了也有后悔药:老师删掉某条记录,可以让学生重新打卡补回来。

学生名单:按班级和姓名自动汇总打卡天数和时长
这些功能没有一个是 AI 想不到的,但每一个都要有人想到,再有人确认。
现在它真的在用了
回到开头那句话。代码写完那天,我以为完成了 90%。
现在回头看,写代码大概占整个事情的 30%。
剩下 70% 是这些事:数据放哪、谁来登录、域名怎么算数、权限怎么开。
这四个问题 AI 都能帮你解决,但它不会主动问你。
写代码之前,先写四行字。
数据放在哪。谁来登录。正式域名是什么。权限怎么开。写完这四行,再让 AI 开始写代码。
你用 AI 做小程序卡在哪一步,评论区说说,我看到都会回。