万有引力免安装绿色中文版
30.1M · 2025-09-28
我平时是做 PHP 的,工作里基本上都是在写 Web 应用。说实话,写久了难免有点惯性思维:服务器、框架、数据库、API、浏览器。
而这次,我做了点不一样的东西 —— 一个用 Go 写的财务管理桌面应用。
很多人可能会觉得奇怪:财务管理、记账软件,这不已经烂大街了吗?随便一搜一大堆,为什么还要自己做一个?
我其实一开始也没打算做什么大而全的产品,而是因为一个很小的念头:我想试试 Go 写应用,并打包成 Windows 或 Mac 上能跑的桌面软件。
PHP 的世界里,几乎绕不开服务器。写一个应用,哪怕功能再小,也得起一个 Web 服务,访问地址可能是 http://localhost:8080
,然后浏览器打开用。
这没什么不好,但问题是:
而 Go 给了我一种完全不同的体验:随手 go build
,就能编译出一个二进制文件,甚至还能轻松跨平台打包。
这让我很感兴趣,于是就有了这个想法:不如用 Go 写个小工具,然后打包成桌面应用跑跑看。
那为什么选财务管理呢?因为这个需求对我来说刚好存在。
我平时的开销基本都在支付宝和微信里,虽然它们各自有统计,但没法合并在一起。
我更希望把两个平台的账单统一起来,还能对消费分类做个合并统计,好让我清楚钱都花到哪里去了。
而财务管理这个主题也很适合练手:
于是我就开工了。
做到现在,项目已经算是一个最基础可用的版本了。虽然功能不复杂,但过程里的体会挺有意思。
写 PHP 的时候,要部署、要跑服务,框架本身也会预先定义很多结构。
而 Go 就很朴素:从监听端口开始,一切都要自己实现。听起来像是会很麻烦,但实际体验完全不是这样。
端口监听、配置文件、路由、中间件……几行代码就能完成。
不仅没有在基建上“浪费时间”的感觉,反而有一种更自由的掌控感。这对我来说很新鲜。
虽然这是“桌面应用”,但本质上我还是走前后端分离。
前端在 fintrack-frontend
,后端在 fintrack-backend
,桌面应用只是“换了个壳子”。
可心理上的感觉不一样:它不再是浏览器地址栏里的东西,而是一个真正“装在电脑上的软件”。
PHP 写久了,写 Go 的时候会下意识去找框架、找 ORM,结果发现 Go 的生态完全不一样。
刚开始有点别扭,但后来发现语言层面的简洁反而让我能更专注在业务逻辑上,不会被一堆“默认约定”牵着走。
说实话,这个财务管理应用对别人来说可能没什么价值,毕竟现成的工具太多了。
但对我来说,它让我尝到了用 Go 做“非 Web 应用”的可能性,也多了一个贴合我需求的小工具。
目前项目已经开源,可以直接下载到安装包:
支持打包 Windows 和 Mac 版本,算是实现了我最初的目标。
接下来,我可能会继续加一些功能:
不过,就算后续不再加功能,这个项目也已经达到了我的目的:
它让我走出了 PHP + Web 的惯性思维,尝试了另一种可能。
很多时候,我们写的小项目,在别人看来可能就是“又一个记账软件”,没什么价值。
但对自己来说,它代表的是一个学习过程,一个探索新方向的契机。
所以,如果你也有类似的想法,不妨直接去做。
也许别人不一定用,但你自己的收获,已经足够大了。