
一格格拼豆
已发布小程序技术栈: Taro 4 · Vue 3 · TypeScript · Tencent CloudBase · Vitest · GitHub Actions
把一张拼豆图纸变成可以一格一格点掉的清单。 一格格拼豆是给拼豆爱好者做的微信小程序:导入图纸图片,在上面对齐网格,再在编辑器里按进度往下拼,下次打开还停在上次的位置。拼完以后,还能把作品做成一份小礼物发给朋友。
核心特点
网格由你对齐,不靠猜
填好行列数,拖动四条边套住图纸,再用局部放大镜微调四个角来修正透视。网格是叠在图片上的独立逻辑层,所以略微歪斜的照片也能用。
三种拼法
自由浏览、按行拼(提示下一个格子),或按颜色拼。进度用紧凑的位图保存,可以撤销,下次接着上次的位置。
可以随时纠正的颜色系统
相近的颜色会自动分组,你可以合并、拆分、排除背景、把单个格子归到别的组,每一步都能撤回。颜色组可以绑定 MARD 221、MARD 291、Hama Midi 的色号或自己的色卡,并生成备豆清单。
做成礼物分享
带名字和头像的送礼名片发给好友,好友点开格子把图案揭晓出来。拼完的作品放进可以拖动排布的收藏室。
导入并对齐网格
选一张清晰的拼豆图纸,填上行数和列数。校准页会在图上叠一层网格:拖动四条边套住带编号的有效区域,微调四个角来修正透视,再用放大镜检查贴合程度。大图纸可以用全屏和横屏。网格是独立的逻辑层,图片本身不会被切碎。


一格一格地拼
编辑器把图纸做成可缩放、可平移的底图,上面叠着对齐好的网格。可以在全图浏览,以及按行或按颜色拼之间切换,当前行和总进度始终可见。已拼的格子可以显示为颜色填充、叉、斜杠、对勾或爱心。双指缩放保持流畅,是因为手势期间的状态只保存在本地,手势结束才同步。



管理颜色
颜色页把相近的颜色分成组,可以校准、合并或拆分,并把每个颜色组绑定到色卡里的色号。下面这张示例图纸正好只有一种颜色,所以只显示一个颜色组。

分享与收藏
「分享作品」会把作品做成一张送礼名片:朋友看到你设置的名字和头像,点开格子把图案揭晓出来,还可以直接收下这个拼豆,或者自己再拼一个。分享快照由云函数保存,文字和图片在保存或展示之前都要通过内容安全检查。


拼完的作品和收到的礼物,都会钉在收藏室的一块毛毡板上。可以按「我拼过的」「收到的」筛选,更换毛毡底色、显示或隐藏标签、拖动摆放位置,每件作品都记着完成日期。

工作原理
应用是本地优先的:项目、进度和图纸图片都留在设备上,项目有效期 72 小时,看一次激励广告可以续期(第一次导入免费,广告已接好,等广告位通过审核后才打开)。只有分享才会用到云端:一个 CloudBase 云函数负责保存分享快照、按小时发送到期提醒(微信订阅消息),以及做文本和图片的内容安全检查。页面只做编排;网格、校准、进度和颜色逻辑都放在不依赖平台的 core 层,并有单元测试。
工程细节
- 一个我愿意讲的排查案例: 双指缩放卡顿,我分三层定位:整张网格反复重绘、对超大数组的深度监听、每次 touchmove 都替换整个状态。修法是手势期间的状态留在本地,手势结束再同步。
- 有数据支撑的产品决定: 自动识别行列数在 13 个测试用例里只对了 3 个,所以我把它搁置并隐藏入口,没有上线一个会猜错的功能;代码和回归脚本仍然保留。
- 对颜色保持诚实: 色卡来自第三方,色值是屏幕近似值并如实标注,界面用词是「推荐」而不是「精确」。
- 内容安全: 图纸图片在设备上先做预筛查再上传,云端保存前再检查一次图片和文字。这是微信平台审核之后补上的,最新一轮加固已经写进代码,但还没有部署。
- 有测试、有 CI: 约 250 个测试用例覆盖网格、校准、进度、颜色、色卡、分享和云函数;GitHub Actions 在每次推送时跑测试、类型检查和构建。
当前状态
已发布在微信上:2026 年 8 月 12 日通过微信认证,8 月 26 日发布 0.1.6 版,不做任何推广,靠自然流量累计约 100 名用户。接下来:把最新的安全加固部署并真机回归,等广告位就绪后打开激励广告,自动识别以后再评估。源码是私有仓库,所以本页用截图代替代码;所有截图用的都是示例图纸,不含个人信息。
该项目的源码为私有仓库,因此这里用截图和文字说明代替,可以在面试中现场演示代码。