- SignalDesk2小时前
小程序名称 口袋百宝集 这个项目断断续续写了一个多月,今天拿出来说说,也想听听技术上的意见。 先说清楚:是我自己做的,免费,没广告也没内购。发在分享创造,主要是想听批评。 起因 起因挺土的。有天想算个房贷,下了个计算器 App ,填完数字点结果,先弹出一个贷款顾问的咨询框。关了又弹。当时就想,一个除法至于吗。 后来翻了翻手机,装着七八个用完一次就再没打开的工具——农历一个、汇率一个、记账一个。每个都几十兆,每个都要注册,每个都有开屏广告。 就想做一个干净的:打开能用,用完就关,别烦我。 做成了什么样 微信小程序,19 个工具入口,一共 43 个页面。主包 6 页,其余拆成 10 个分包。 体积上,主包 110,403 B (约 108 KB ),全包 2,753,302 B 。2MB 主包限制是硬约束,所以截图、设计稿、报告这类非运行时文件全部走 packOptions.ignore 排掉了,不进包。 最想说的是离线这块。也就是没有后端、没有云开发、没有账号体系。账本、待办、密码笔记这些数据只写 wx.storage ,不出本机。农历和节气用的是内置农历库,不调任何日期接口。 内容全部打包在本地:解梦 3052 条词条(按 10 类拆文件)、文案素材 60 条、三套心理测试题库( 28 / 25 / 24 题)、笑话 24 条、谜语 29 条、歇后语 30 条。 测试用 Jest ,32 个套件 528 条用例,跑一遍 36 秒。 几个值得说一下的实现 解梦那三千多条不可能是手打的。做法是维护一份种子文件加一个生成器脚本,批量生成后跑校验,主要查新词条会不会跟已有的 word 和 alias 撞车,通过了再倒进数据目录。要扩量就改种子重跑。 心理测试做成了统一引擎。三套题库共用一个出口,支持两种题型(二选一、五级李克特)和三种计分模式(出类型、出画像、出特质分)。16 型那套的配对是四维全反的镜像规则。 还有个小约束是全程禁 Math.random() 。需要随机性的地方都注入可复现的 rng ,不然测试没法断言。 踩的坑:被内容安全审核驳回两次 这部分可能是最有分享价值的。 提审被驳回两次,理由都是《微信小程序平台运营规范》 3.2 条的 UGC 内容安全,指向 security.msgSecCheck ,点名的都是图片类功能。 问题是这产品压根没有 UGC 。用户选一张图,本地压缩,存回自己相册,全程不上传、不分享,也没有评论区。全仓连一个网络请求都没有。 第一次的处理,是给图片页补了「仅本机处理」的显式声明,同步改了用户协议。 第二次驳回了具体的图片压缩功能。 最后的选择是把图片工具箱整体下线:从 app.json 摘掉注册, packOptions.ignore 里排除目录,提审版本只留二维码生成。image 分包从 111,044 B 降到 93,924 B 。 局限 只能在微信里用,没有独立 App 数据只存本机,换手机或清缓存就没了 不联网的代价是内容没法热更新,加一条词条也得重新发版 wx.storage 容量有限,不适合存大量数据 房贷、个税、退休、安全期这些是估算,结果仅供参考 想问的 分包结构还有没有更优解。我拆了 10 个,但边界划得不一定对 几千条文本这种内容型数据,除了打包进包体,在 2MB 主包限制下还有别的做法吗 哪些工具你觉得该加、哪些该砍 欢迎拍。
- 情报分类:硬件与数码
- 分类依据:内容涉及硬件、数码产品或通信卡
- 信息来源:服务器 / V2EX
- 发布时间:2026/9/29 15:14:42
- 暂无回复