微信小程序开发日常:记账工具

我一直有一个很多年的习惯,就是不管走到哪里、不管什么时候,都喜欢随手记账、记事情。我自己心里很清楚我的记性不算好,生活里大大小小的事,只要不马上记下来,过一阵子基本就忘了。尤其是跟钱有关的开销、往来,我从来不敢马虎。

除了自己平时的日常花费,最关键、最不能乱的就是人情往来。家里、亲戚、朋友之间的各种红白喜事、随礼走动,一旦记错、记混或者漏掉,后续真的特别麻烦,还容易产生尴尬和误会。

最开始,我一直用纸质本子、礼簿来记录。那时候事情少,手写记账特别直观,也让人踏实。只要本子收好,以后有事翻一翻,谁随了礼、随了多少、因为什么事,我给谁随过多少、是什么情况,全都清清楚楚,照着记录来对接就不会出错。

但随着时间推移,身边的人情事越来越多,纸质账本的弊端就慢慢出来了。每次需要查某个人、某件事的记录,都要一页一页慢慢翻,找半天。找到之后,还要自己手动一笔一笔核对、算账,整个过程又慢又麻烦,很不方便。

为了省事,我最开始也和大家一样,直接用网上现成的记账APP、礼簿小程序。我试过不少口碑好、界面看着舒服的工具,刚开始用确实挺满意,功能齐全、操作简单,完全够用。

真正让我不想再用第三方软件,是今年四月底发生的一件事。当时我自己的部分网站和服务器遭到了恶意攻击。那次之后我彻底想明白了一件事:数据放在别人那里,永远都不算安全。 不管平台做得再好,数据存在别人的服务器上,就相当于不受自己控制,风险很大。只有数据完全掌握在自己手里,才是最靠谱、最安心的。

除此之外,这些第三方记账软件还有很多让人不舒服的地方。很多看似免费的工具,想要长期用好功能,就要开会员,一年几十、几百不等。而且很多软件刚开始很干净、没有广告,后期作者为了赚钱,版本一更新就塞满各种广告、弹窗,使用体验直接变差,特别鸡肋。

综合种种顾虑,我最终放弃了所有第三方记账工具。打算自己开发一款专属的个人记账工具,仅供个人使用。完全按照我自己的记账和人情往来习惯量身打造,所有数据自己掌控,没有广告、不用开会员,界面干净、功能纯粹,彻底解决我这么多年记账、记人情遇到的各种麻烦。

我的需求

1.个人习惯需要长期记录日常开销,避免遗忘收支。

2.精准记录人情往来,防止记错、漏记造成尴尬麻烦。

3.摒弃传统纸质账本,告别翻找、手动核算的繁琐操作。

4.不使用第三方平台,所有数据自主掌控,保证数据安全。

5.杜绝软件广告、强制升级会员等影响使用体验的问题。

6.功能贴合个人真实使用习惯,不需要多余冗余功能。

7.全程免费自用,干净简洁,只为解决自己的记账需求。

具体操作

想好自己要实现的需求之后,先注册好个人微信小程序账号,做完备案,把云开发环境搭建起来(当然,看个人需求,也可以使用自己服务器的数据库来搭)。接着梳理记账和人情往来需要保存哪些信息,设计好数据库和页面大概样子,然后动手写前端页面,用来录入和查看各类记录,再写好云函数处理数据的保存、读取和简单统计。写完就在开发者工具里反复调试改bug,基础版本做好后,把自己加入体验成员,自己实际上手试用,再根据自己使用的感受调整优化细节……

“ 具体操作 ”过程此处省略N字。本着报喜不报忧的原则,开发的过程也许只有开发者自己明白其中的心酸吧。

数据处理

明文登录密码由用户自行保管,服务器不保存原始密码,只存密码校验串用来登录验证信息。本工具上所有创建的账本信息都是经过加密后才存在云端的(仅用户昵称不加密)。解密的密钥在登录时通过由用户自行保管的明文密码临时生成,不保存到设备缓存,也不上传给服务器后端,后端看不到账本真实内容。

最终成果

1.礼簿(收礼)

可新建多场酒席礼簿,自动记录阳历、农历日期;实时统计礼簿总收入、笔数,区分现金、微信收入;支持手动录入、酒席批量录入,录入时姓名联想、同名重复筛查,每笔记录可完整修改。

2.送礼

新增送礼记录,支持按年份筛选记录,可按今日/本周/本月/全年做分类统计,快速搜索送礼条目。

3.人员往来查询

点开人名可查看和此人全部收、送礼往来,自动计算双方人情结余,支持剔除无关记录,理清人情平衡情况。

4.全局检索

全局搜索全部礼簿、收送礼记录,关键词高亮,点击直接跳转对应记录位置。

5.数据统计可视化

单场礼簿独立统计、全部账目总统计,提供条形图、扇形图展示数据。

6.账号与安全能力

微信绑定账号,设置登录密码;数据云端实时同步,换设备登录数据不丢失;内置应用密码锁,防偷窥;退出登录清空本地缓存。

自我总结

这次从零开发自用记账小程序,初衷很简单:解决纸质账本查找麻烦、第三方工具数据不可控、广告会员干扰的痛点。整个项目没有追求复杂花哨的功能,一切围绕我日常记账、管理人情往来的真实需求设计,算是一次落地的实践。

从需求梳理、数据库设计,到页面开发、云函数调试、加密方案实现,过程里踩了不少坑。尤其是账本数据加密这块,需要兼顾数据云端存储安全和解密效率,保证后端无法读取真实账目,真正做到数据由自己掌控。在功能迭代阶段,我以使用者的视角反复测试,新增人员往来结余计算、全局检索、图表统计等能力,把之前手写账本需要手动完成的统计、对账工作交给程序自动处理,查找账目、核对人情收支效率提升很多。

对比纸质账本,这套工具可以快速检索、自动核算,不用担心本子丢失、翻阅麻烦;对比第三方记账软件,没有广告弹窗,不存在强制开会员的问题,所有功能都是按需搭建,没有多余冗余模块。礼簿记录、送礼台账、人情往来对账这些核心能力,刚好匹配我记录红白喜事随礼的使用场景,能有效避免人情记错、漏记带来的尴尬。

当然项目也存在局限,定位始终是个人自用工具,没有做面向多人使用的复杂权限、多端协作等功能,不需要考虑大量外部用户的兼容性问题。后续如果有需要,还可以继续小幅优化细节,比如完善前端界面数据导出备份功能、优化图表展示细节。

总的来说,这次开发最大的收获不只是得到一个顺手的记账工具,更是实现了数据自主可控。把自己长期以来记账的习惯,转化成一套属于自己的小型系统,不用再依赖外部平台,既满足了记录收支、管理人情往来的刚需,也算是一次很有价值的动手实践。

在线体验

这款小程序最初只是为我个人打造的记账礼簿工具,自测完成后,我先是分享给了身边的亲友们试用,大家的反馈体验都还不错的。现在临时开放一段时间,欢迎各位博友扫码体验试用,使用中如果遇到问题,或是有功能优化的想法,欢迎提出宝贵意见。

题外话:有实际使用需求的友友,如果需要这套小程序源码,我可以无偿分享。

近况

最近的日子过得平淡又规律,每天都是两点一线的简单节奏:上班、下班、吃饭、睡觉,日复一日,没有什么特别的波澜,安稳又踏实。

因为媳妇爷爷的生日快到了,所以昨天特意调休了一天,专程赶回去给老人祝寿。白天趁着天气晴朗,我和老丈人、二叔、大爸、二爸她们一起下地去收包谷。天上的太阳格外毒辣,整个人穿梭在闷热的包谷林里,又闷又热,包谷叶划过脸颊,体验感可以说十分“酸爽”。一整天下来,不停地打包谷、背包谷、撕包谷壳,手脚一直没停过。

一直忙到天色完全变黑,我们匆匆吃完晚饭,给爷爷过完生日,才启程返程。到家的时候已经是夜里十一点左右,整整一天的农活,累得浑身精疲力尽。简单冲了个热水澡,倒头就睡,好好缓解了一身的疲惫。

日常平淡之余,我最近迷上了研究各类实用小工具,闲来无事就折腾代码、写一些自用的小程序。没有盲目跟风的开发,只为了做自己真正用得上、够实用的功能,这次分享的记账礼簿小程序,就是折腾出来的成果之一了罢,纯粹是为了方便自己日常使用。

生活里也顺带发生了一件特别搞笑的尴尬小事。我们公司办公室的电脑一直是我专用,我习惯性设置了屏幕权限。昨天我休息不在岗,替班的同事打开电脑,屏幕一直是黑屏状态,他误以为电脑坏了,一整天都没能使用我这台电脑。最后连我们老大都专门打电话问我,是不是电脑出了什么故障,让我回来以后抽空拿去检修,当时真的把我笑坏了。

也是昨晚从爷爷家返程时,我顺路回了公司,把这台电脑带回家。隔天开机一切正常,所谓的“电脑故障”,不过是我设置权限闹出的乌龙罢了。

如今一切回归正轨,又开启了熟悉的工作日常。按时上班、好好吃饭、偶尔摸鱼放松,闲暇时间继续折腾自己喜欢的小东西。普普通通的日子虽然平平无奇,但充实又自在,也许,这就是最好的生活状态了吧。