最近身边好几个朋友都在问同一个问题:不懂代码、没做过小程序开发,能不能用一个提示词把想法变成能扫码打开的微信小程序?我上周刚好用 WorkBuddy 从一句需求描述走到二维码上线,整个过程比我预想中快很多,但坑也不少。这篇就按我实际操作的时间顺序,把从提示词设计、项目生成、调试改 bug、配置域名,到最后审核发布的完整链路拆开讲一遍。想用 AI 开发小程序的人,可以直接照着这个思路去试。
1. 提示词决定八成结果,先学会把模糊想法变成可执行需求
先说结论:WorkBuddy 这类 AI 小程序开发工具,本质上是把“自然语言需求”翻译成一套完整的小程序代码工程。它能不能生成你想要的成品,取决于你在提示词里给了它多少有效信息。很多人的提示词只有一句话:“帮我做一个记账小程序”,结果出来的页面千篇一律,功能也是通用的,原因就是 AI 没有足够的信息推断你的使用场景。
提示词不是越短越好,而是要把项目边界说清楚。我的习惯是把它当成给一个刚入职的实习生讲需求,要包含五个方面:
- 项目定位:这个产品给谁用、解决什么问题、核心场景在哪里。
- 功能清单:首页、列表页、详情页、表单页分别做什么,主流程是什么。
- 数据设计:有哪些核心数据字段,比如名称、金额、时间、状态、备注,数据存哪里。
- 交互方式:需要哪些点击跳转、弹窗确认、下拉刷新、表单校验。
- 视觉风格:配色倾向、字号习惯、是否需要底部导航、顶部标题怎么处理。
按照这个思路,我实际用过的一个提示词大概长这样:
你是一名微信小程序架构师。帮我开发一个叫“门店访客登记”的小程序, 面向小型零售店店主。核心功能: 1. 访客进入店铺后扫码填写姓名、手机号、来访目的; 2. 店主在首页看到今日访客列表,可按日期筛选; 3. 数据保存到云开发数据库,不需要自建服务器。 页面要求:首页是看板页,展示今日访客数和累计人数,下方是访客列表; 访客端是表单页,字段包括姓名、手机、来访目的,手机号做格式校验。 视觉风格:简洁商务,主色用深蓝色,底部需要一个“我的”Tab。这段提示词把“谁在用、做什么、数据有哪些、页面怎么分、视觉什么样”全部约束住了,AI 生成时就有足够依据。如果你把它们说清楚,生成出来的页面、目录结构、数据字段都会靠谱得多。
生成后还有一个机制要牢记:一次提示词适合生成一个相对完整的“最小可用版本”,但别指望它一次覆盖全部复杂功能。AI 生成的代码在工程上往往比较“平铺直叙”,它可能把所有功能都塞进一个页面,或者没有合理拆分组件。这时候不要让它一次重写整个项目,而是保持项目目录不变,用“在现有代码基础上,给首页增加 xxxxx”的追加式提示词,逐块迭代。这种问法比反复整包重生成的稳定性和可控性高很多。
2. 项目生成只是第一步,先核对配置再进预览窗口
用 WorkBuddy 生成完项目后,它一般会给你一个可以直接导入的工程包,拿到手先别急着看页面效果,有几处工程配置我会逐一核对,顺序固定,避免漏项。
第一处是 AppID。小程序所有编译、预览、真机调试都绑定了 AppID。如果你之前注册过小程序,就在 app 后台拿正式 AppID;如果只是临时测试,可以用测试号。但你要清楚区分:测试号可以玩,但功能受限,部分 API 用不了,上线更是必须换正式 AppID。我第一次做的时候把测试号的东西直接当正式流程走,后面浪费了不少时间。
第二处是 app.json。这是小程序的全局配置,pages 数组里声明了所有页面路径,window 配置了默认导航栏标题和背景色。用 AI 生成的项目,这个文件大概率是齐全的,但你仍要检查 tabBar 是否覆盖了所有想要的主页面,页面注册顺序是否正确,尤其是首个页面是不是你想让用户最先看到的那个。
第三处是网络请求相关配置。WorkBuddy 生成的小程序如果带后端逻辑,多半会通过 wx.request 去请求一个远程接口。你需要找到所有请求的 base URL,把它集中放在一个配置文件或者 config.js 里。我在项目里习惯单独建一个utils/request.js,所有请求都走同一个封装,统一带上超时时间、错误提示和登录态 token。这个习惯在后面上线阶段特别值钱,因为调试时你可以在一个文件里切换接口地址,不用满目录找散落的链接。
完成这些检查后,导入开发者工具,编译预览。在预览窗口里我会重点验证三件事:
- 首屏渲染有没有报错,特别是请求异常导致的空白页;
- 底部导航和页面跳转是否顺畅;
- 表单类的交互,比如输入校验、按钮 loading 状态是否正常。
到这里你会明显感觉到,AI 生成的代码在“可以跑”到“体验顺滑”之间还有一段距离。比如按钮没有防重复点击的节流逻辑、空数据页面没有引导、请求失败后没有任何兜底提示。这些不是 AI 发布时必然带的,但对真实上线项目来说都属于必须补的基础体验。
3. 从扫码体验到真正上线,域名、类目、审核缺一不可
扫码不是拿着开发者预览的二维码让别人扫,那只是测试版二维码,有效期短、功能受限。真正的“扫码上线”是:你发布了一个线上正式版本,用户用微信扫小程序码,直接打开默认首页。这条链路里有几个门槛,特别容易被 AI 开发的新手忽略。
3.1 请求域名必须合规,不能跳过校验
如果你的小程序要请求远端接口,微信平台要求所有请求域名必须同时满足三个条件:HTTPS 协议、已经通过 ICP 备案、在小程序后台的“服务器域名”白名单里配置过。开发调试时,开发者工具的“跳过合法域名校验”开关确实能让你绕过限制,但它只在本地工具内生效,真机预览时一旦关闭这个选项,请求会直接失败。
这意味着,生成代码里凡是请求远端地址的地方,都要确保域名是正式环境域名,而不是调试用的局域网 IP 或 localhost。我一开始用本地接口调试得很顺,结果真机扫码测试时页面全部白屏,排查到最后就是域名白名单没配置。处理方法是:在小程序后台的“开发管理-开发设置-服务器域名”里,把正式接口域名填进 request 合法域名列表,然后所有 wx.request 请求的 URL 必须带 https。
对应地,代码里要区分“开发环境”和“生产环境”。最简单的方式是在 config.js 里写两个 baseUrl,根据当前编译环境自动切换。这样一个文件搞定,不用每次上线前手改几十处。
3.2 类目决定审核通过率,服务类项目要提前查资质要求
小程序后台在发布前必须选择“服务类目”,不同类目对应不同的主体资质要求。工具、生活服务、教育、医疗、金融这些类目审核标准完全不同。AI 生成的小程序,功能往往比较杂,可能一个工具类产品里顺手带了个资讯模块,或者有类似评价的内容。这类“内容社区”属性功能,要么需要额外资质,要么会以“涉及社交属性”为由影响审核。
所以提审前要做一次功能“简化”:把不是核心闭环的功能先隐藏或砍掉,让小程序的核心服务类目和实际功能严格对应。别抱着“多放点功能显得产品丰富”的想法,审核角度多一个功能就多一层风险。用 AI 做首发版本,最好就是单一主功能、边界清晰、命名和功能吻合。
3.3 上传代码和提交审核时,要把体验路径写清楚
流程大概是这样的:开发者工具里点击“上传”,填写版本号和项目备注,在微信公众平台的后台把刚上传的版本设为体验版,先用体验版二维码做最后真机确认,确认无误后再提交审核。提交审核时,平台要求填写功能页面、测试账号、功能备注。这里不要偷懒,测试路径写得越具体,审核人员能快速按你的操作路径走完所有功能流程,通过率越高。
我建议提交时附上三行说明:第一行写明小程序是做什么的,第二行写核心体验路径(比如“首页点击 xxx → 进入表单 → 提交后查看结果列表”),第三行说明涉及的个人信息收集用途和存储方式。这个信息在审核里非常重要,尤其是涉及手机号、定位等个人信息的功能,平台会重点核对你有没有隐私相关说明。
正式发布还有一个前置流程:发布前需要补充《用户隐私保护指引》,说明收集哪些信息、用途是什么。这些不是可选项,是提交发布的硬性条件。我第一次上新项目时差点卡在这一步,后来把所有字段整理成表格,逐条申报,五分钟就搞定了,耗时不多,但一定得提前想着。
4. AI 生成的小程序,上线前一定要排查的四类问题
把 WorkBuddy 当成“一键生成工具”是最大误区。它可以帮你快速写出代码,但不会替你完成“生产可用”的质量保障。下面这几类问题,是我实际测试中遇到过的,也是 AI 生成项目的共性问题,值得上线前逐条排查。
4.1 调试开关和数据密钥裸奔
AI 生成代码时,有时会把开发者工具里好用的调试配置原样带入生产环境。最常见的就是控制台里大量 console.log、关闭合法域名校验的开发模式判断、以及把云开发环境 ID 或 API Key 直接写在代码里。小程序前端代码一旦发布,任何用户都可以通过解包工具看到里面写死的敏感信息。凡是要保密的密钥,不要放前端,后端接口要做好鉴权,云函数环境 ID 这类基础配置可以放前端,但涉及后台权限的操作必须走服务端校验。
4.2 请求缺少统一错误处理
AI 生成的 wx.request 通常是单页单写,每个请求拿到的返回直接塞进 data,一旦网络失败、接口超时、后端返回异常 code,页面就只会白屏或者弹一个让人一头雾水的错误。上线产品里,这是体验减分最严重的地方。我的做法是把所有请求统一封装,异常时给用户明确的 toast 提示,同时把错误信息上报到平台日志系统,方便后面排查。这一步看着不起眼,但对真实用户来说,比任何花哨动画都重要。
相应代码可以参考下面这样:
function request({ url, method = 'GET', data = {}, loading = true }) { return new Promise((resolve, reject) => { if (loading) { wx.showLoading({ title: '加载中' }); } wx.request({ url: BASE_URL + url, method, data, timeout: 8000, success(res) { if (res.statusCode === 200 && res.data.code === 0) { resolve(res.data.data); } else { wx.showToast({ title: res.data.message || '请求异常', icon: 'none' }); reject(res.data); } }, fail(err) { wx.showToast({ title: '网络不给力', icon: 'none' }); reject(err); }, complete() { if (loading) wx.hideLoading(); } }); }); }这里额外加了一个 8 秒超时,意义重大。AI 生成代码往往不带超时控制,一旦后端响应慢,页面会长时间停在一个不可知的状态。加上超时后,至少会给出一个明确反馈,用户不至于以为程序卡死了。
4.3 页面数据结构和后端字段不匹配
AI 生成的前端页面会按它自己假设的数据结构渲染,比如列表页拿到一个data.list,每个 item 有name和time。如果后端实际返回的是data.items,或者字段名是title和created_at,页面就会渲染失败。这种问题在 AI 开发场景里尤其多,因为它通常是前端代码和后端设计同时生成,两者依靠的“约定”可能并不一致。排查技巧是在页面加载后把 API 返回的原始 JSON 打印出来看一眼,再确认页面渲染取用的字段是否一致,不一致就在代码里的适配层做一次映射,而不是去改后端或用大段 if else 硬判。
4.4 包体积和加载性能被忽略
AI 生成的代码里经常附带大量重复工具函数、未使用的页面、冗余图片资源,最后导致主包体积逼近上限。小程序主包加上自有空间,限制是 2MB 左右,超过后无法上传。很多 AI 生成项目第一次上传失败,就是卡在这里。
解决的思路是给项目做瘦身:把不用的页面从 pages 数组里删掉,把体积大的图片换到 CDN 或者直接删掉,把若干工具函数合并到一个公共模块。如果项目确实页面很多,就需要做分包,把非首屏页面放到 subPackages 里,让用户到达对应页面时再加载对应代码。这个优化不难,但需要注意:分包内页面跳转时要带完整路径,且主包和分包的资源不能互相引用。
5. 上线后的复盘清单:成本、体验边界和接下来怎么迭代
当版本审核通过并成功发布,工作并没有结束。小程序上过一次线只是第一关,之后的真实使用反馈会告诉你很多事。我按自己的复盘习惯,把上线后重点观察的东西整理成了一份清单,你完全可以抄走:
- 启动性能:从扫描二维码到首页真正可交互,超过 5 秒就会明显掉用户,优先检查首屏依赖了多少个并发请求。
- 崩溃与异常日志:在平台后台看错误率,尤其是 iOS 和安卓的差异,AI 生成的页面有时会在兼容性上出问题。
- 用户关键路径转化:访客从打开到完成核心动作的比例是多少,不做埋点就永远是盲人摸象。
- 数据存储和隐私合规:上线后新增功能时,如果涉及新的个人信息字段,必须回到后台更新隐私保护指引,这条略麻烦,更要做在习惯里。
成本方面也要提前有个谱。用 WorkBuddy 这类 AI 工具开发,省下的是大量业务开发时间,但服务器、域名、备案、小程序认证这些基础成本一样省不掉。个人主体的小程序认证费用不高,但个人身份能用的接口范围有限;如果要做支付、消息推送这类能力,几乎都需要企业主体。所以建议先确认你要开发的项目最终需不需要这些能力,再决定注册主体,省得后面再变更主体,麻烦程度不低。
如果说有什么建议最想分享,那就是:AI 生成的代码,必须当成“有经验的实习生写的初稿”来对待,逐行读、逐段测、按生产标准收紧。它让你从零到一的速度快了很多倍,但从“能跑”到“好用”之间的这一段,恰恰是决定这个项目能不能真正留下来的关键,动手之前先把这个预期建立起来,后续的每一步都会少走很多弯路。
最后再分享一个实用的小技巧:把所有核心开发指令沉淀成一个自己的模板,每次开始新项目时直接把模板复制进 WorkBuddy,把项目名、目标用户、功能范围这几个变量替换掉就可以。我上次做的门店访客登记小程序,从生成到上线整个流程走完,拉了完整的项目模板后,第二个同类项目只花了不到三小时就完成了初次发布。模板比提示词更值钱,它意味着你可以把一条条踩出来的路固定下来,变成下一次直接启用的武器。