我从去年开始使用 beancount 搭配 fava 来记账,总体效果不错,但也遇到了一些问题。
上手难度大
便捷性不足
作为一名后端开发,本能地想到 接口即服务。于是着手把 beancount 的使用抽象为 API 接口。
beancount 提供了 bean-query
的命令,可以执行 BQL 语句(类似 SQL )输出结构化数据;我只需要把这些结构化的数据解析成 JSON 返回即可。于是我用 NodeJS 快速验证了这个想法( Github 地址:beancount-node-server)。
Node 虽然开发起来很便捷,但是它给使用者新增了强依赖(用户想要记账需要同时在电脑配置 Python 和 Node ),本着 如无必要,勿增实体 的原则,我又把这个项目用 Go 重构了一遍,在支持多平台的基础上,而无需新增依赖。
同时我也开发了一个前端界面(勉强兼容移动端)和对 docker 的支持。
最终成品如下:beancount-gs 在线体验
使用文档-完善中
API Github 地址:beancount-gs
前端 Github 地址:beancount-web
上面这些就是我对 beancount API 化的探索,如果大家对这个项目有兴趣,欢迎保持关注。
Love the world.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.