所以在几年前,我下决心自己开发记账软件解决这些问题。我先系统的研究了最新的数据库理论,然后调研了国外的BeanCounter等开源软件,同时学习了复式记账的会计方法以及投资领域各种主流的收益算法。应用这些知识,我在几年的业余时间里尝试了从Access到SQLite的多种关系数据模型,把自己和家人当测试用户,数次迭代改进后,现在终于形成了一个自己觉得还挺好用的版本。
我给这个记账软件起名叫TataruBook,下载地址和源码仓库(仓库首页有说明这个名字的来历):
Github:https://github.com/Goalsum/TataruBook
Gitee:https://gitee.com/goalsum/tatarubook
我还给软件编写了详细的使用文档,文档网站是(大家可以先看文档中的教程和例子来判断是否适合自己,页面右上角可以选中文语言):https://goalsum.github.io/TataruBook/
国内网络访问Github有可能不流畅,所以在Gitee仓库的发行版中提供了打包的离线文档,解压后用浏览器打开docs目录下的index.html文件即可。
欢迎大家对记账方法和记账工具进行交流,我会尽力在这个帖子里回答所有疑问。也欢迎大家提出意见和建议,我以后争取持续维护和开发更多功能。
---------------------------------------------
补充说明:“记账软件”这个词可能让人误解是专门用于记录日常琐碎收支的,但我编写软件的目的不是这个。现在日常收支全都是用电子支付,每笔记录天然就存在各个账户的账单里。我最需要的是把所有银行账单,券商交易账单等全汇总到一起,让自己可以方便的检视所有的资产状况,不会出现一笔基金在一个冷门账户上买了几年搞忘了这种事情。
所以我自己也不会天天用软件更新交易记录,只是每半年才把所有账单集中处理汇总一次。而且数据打通了之后,我才好分析整体投资仓位分布、收益率等等信息。对我来说,相比起分析日常开支,对于投资的各方面数据分析重要得多,这才是我编写软件的最主要目的。以前没有TataruBook,我汇总数据就只能靠手工,有了它之后效率大幅提高,因此软件是用来节省时间的。
但是除了“记账软件”这个词,我也想不出更好的名词描述它。大家可以把它理解成“资产和投资数据汇总分析软件”吧。
是我没看文档傻了。。不过易用性还有很长的路要走,再顶一下楼主我猜你期望的是软件自带的图形界面。
其实对于是否要做图形界面这个问题,之前我曾思考过很久。最后推演的结果是这样的:不管我做一个什么样的图形界面,大多数用户更习惯的肯定还是Excel的操作方式。那么我的最佳选择就是尽可能的让自己的图形界面和Excel的操作习惯保持一致。但是,我没有信心靠一个人用业余时间开发,就能复制出Excel的主要功能,还让用户觉得比Excel更好用。既然如此,我不如只做Excel完成不了的功能;对于Excel中已有的功能,就让用户直接用Excel完成好了。而我尽量做到数据导入导出方便。
同样的逻辑也适用于SQLite数据库。现在有很多各式各样的SQLite数据库图形界面软件,如:DB Browser for SQLite、Beekeeper Studio、SQLiteStudio、DBeaver、SQLiteExpert……都可以用来浏览和编辑TataruBook的记账数据。用户喜欢哪个软件的界面风格就用哪个,我自己再做一个纯属多余。
甚至,即使不安装任何软件,直接用在线网站都能浏览和编辑SQLite数据:在SQLite Viewer Web App这个网站上点“Open File”,打开TataruBook的记账文件,就可以图形化的查看所有报表了。
开源软件的玩法就是这样的,利用生态,就不用自己造轮子。
另外,我也有在想未来可能在某些功能上需要点图形界面(比如在价格走势图上展示买卖点之类的),不过目前看这方面优先级还不高。后续看看用户反馈是否强烈吧。
usage: tatarubook.py [-h] {init,check,export,insert,import,overwrite,delete,prune,execsql,upgrade} ...
tatarubook.py: error: the following arguments are required: {init,check,export,insert,import,overwrite,delete,prune,execsql,upgrade}
赞同来自: csfires
我感觉记账软件的功能有几大块:这个讲得很到位,基本上覆盖了我这几年开发中遇到的难点。前3个相对比较容易,因为只要数据有了,利用Excel以及其他SQLite相关的生态软件进行对比、图表等等办法有很多。后面的货币、汇率、投资收益就有大量要考虑的问题了,主要是不能把数据模型做死了,一旦硬编码做成死的规则,后面遇到一个没考虑到的资产品种,“完整资产记账”的这个目标就失败了。
1. 支出类别的统计
2. 收入类别的统计
3. 实现上述2个图表呈现,和往年对比,和往年平均对比等等。
以上重点关注使用方便性,就是尽量减少手工输入修改的时间。可能需要写一些针对主要银行,支付宝,微信的脚本,自动进行数据格式的转化等。
投资方面的收益,感觉要复杂的多,需要单独开发。
比如:股票还有分红,拆股(红股);可转债有转股
还有不同货币和汇率变化等问题
银行或者其他金融机构导出的账单导入到记账软件,靠人工一条条手工录入肯定是非常低效的。我用的方法是针对性的设计Excel公式进行自动转换。最近我正打算抽空写一篇数据转换指南,写好后会更新到文档网站上。
1. 支出类别的统计
2. 收入类别的统计
3. 实现上述2个图表呈现,和往年对比,和往年平均对比等等。
以上重点关注使用方便性,就是尽量减少手工输入修改的时间。可能需要写一些针对主要银行,支付宝,微信的脚本,自动进行数据格式的转化等。
投资方面的收益,感觉要复杂的多,需要单独开发。
比如:股票还有分红,拆股(红股);可转债有转股
还有不同货币和汇率变化等问题
看你的说明
“首先把数据用Excel处理成下面的格式,并保存为postings.csv文件(posting_index这一列中的数据是故意留为空的,因为它会在导入时自动生成。见自动生成的索引字段):”
感觉需要一笔一笔进行修改银行导出的文件才可以?这个工作量也不小啊
赞同来自: 酱油面
法律可没规定,平台不能传出数据哦,尤其这是用户自己的数据。平台会允许用户获取自己数据,现在绝大多数交易平台都可以导出账单或者交易记录,根据这些账单或者交易记录用Excel批量处理然后导入记账软件是一个很实用的方法,也是我自己主要使用的方法。
相反,数据垄断倒是违法的。如果说什么隐私问题,那也是‘用户数据即便放在你平台,你的后台人员也无权查看,因为这是客户的隐私’,而不是反过来。
所以平台当然想追求商业利益,只希望把用户留在自己这儿。但从法律角度看,如果因此而禁止用户获得自己的数据,这才是违法的,而不是反过来。
以上是法律层面。从技术角度,虽然平台的确对这块儿不说设障碍也至少不...
但是这个过程是需要用户介入的。如果想要记账软件全自动的去平台上获取数据,那么在平台未提供程序化接口的情况下(国内的平台基本上不可能提供程序化接口),记账软件就只能用一些“非正常”的手段:比如让用户提供其他平台的账号密码,然后记账软件模拟成用户登录平台把数据抓出来。这么做的法律风险就很明显了……而且这样的软件估计很多用户打心底里也是害怕的。
所以前一种方法长期来看才是“正道”。如果各个平台导出的账单都能够用比较方便的方法完成数据转换,多半也够用了。我现在也在探索这方面的方法。
至于SQLite不支持网络连接,这是SQLite的定位,也符合TataruBook的定位——我不打算做一个需要连接中心服务器的软件,因为这又会产生用户担心的“以后停服了怎么办”的问题。我只想做一个纯本地使用的,数据全由用户自己保管的软件。至于存储容量应该是不用担心的:我自己一年的个人记账数据,存在SQLite的db文件中连1M都不到。对大多数人来说,家庭记账记录那点数据在硬盘上占用的空间几乎小得忽略不计。
你说对了,这是当前所有记账软件面临的最大问题。而且这不是靠一个软件单方面能解决的问题,因为即使我想同步银行、微信、支付宝那些账户的数据,它们显然也不想让我同步过来——因为这对商业利益不利。每个平台都只希望把用户留在自己这儿。法律可没规定,平台不能传出数据哦,尤其这是用户自己的数据。
我的解决办法是:开放数据格式,开放数据接口。我的数据都是开源SQLite格式,很多别的软件也能读,也能改,也能导入导出成Excel。其他地方的账单,可以先保存到Excel,再...
相反,数据垄断倒是违法的。如果说什么隐私问题,那也是‘用户数据即便放在你平台,你的后台人员也无权查看,因为这是客户的隐私’,而不是反过来。
所以平台当然想追求商业利益,只希望把用户留在自己这儿。但从法律角度看,如果因此而禁止用户获得自己的数据,这才是违法的,而不是反过来。
以上是法律层面。从技术角度,虽然平台的确对这块儿不说设障碍也至少不积极,但这其实也是可行的。如何能突破这块儿,才是此类软件最大的竞争优势。
最后说到解决方法,SQLite,我之前也考虑过,毕竟这种数据量只需要个轻量级的即可,但SQLite最大的问题是对网络的支持问题,由此又进而导致了其存储容量受限,受制于其所在系统的存储上限,从而导致长期可扩展性问题。
所以如果不希望这系统就到此为止了,还希望能持续改进,那这种限制就无法忽视。
现在家财通里面,期指新品种上面没有,你们是怎么增加和记录的呀在基础资料------行情类-----下面分别有证券代码及行情、基金代码及行情、期货
可以增加品种的
但是股票、基金的行情可以通过导入文件更新,期货却无法导入,关键也没有具体提示,后来就放弃了
软件从业者,记账软件爱好者,20多年前用quicken,也自己写了一些导入脚本。后来发现记账对某些人来说记账就是伪命题,又不是公司财务,没必要分类计算支出,看到了看不到又能咋样,能定期核算下资产增长率就是勤快人了。可否更具体的提点意见,我也想知道潜在用户的看法,便于以后做改进。
最近试下来如果有记账需求,感觉做的最好的,是ios的icost。
兄弟,对于你这个软件,我仔细看了下,只能说产品定位有点问题,看说明会用的估计不到10%,里面不嫌麻烦愿意用的可能是10...
我的软件定位有点类似BeanCounter,但我看BeanCounter使用的人还是相当多的。
赞同来自: hnhaiou
我们家记账也十多年了。你说对了,这是当前所有记账软件面临的最大问题。而且这不是靠一个软件单方面能解决的问题,因为即使我想同步银行、微信、支付宝那些账户的数据,它们显然也不想让我同步过来——因为这对商业利益不利。每个平台都只希望把用户留在自己这儿。
此类家庭财务系统或记账软件,最核心的痛点其实在于:多账户的数据如何同步过来?
比如一般家庭肯定都会有不止一个银行账户,也不会全都集中在一个银行吧?多个银行的数据,如何同步进来?
你说银行数据内外隔离,有监管,无法同步,行。那现在多数人也有互联网账户,不论是支付宝,微信支付账户,还是雪球、东财、同花顺,这些能否同步?
看了楼主的简介,似乎没提到这块儿。也点开了楼主的githu...
我的解决办法是:开放数据格式,开放数据接口。我的数据都是开源SQLite格式,很多别的软件也能读,也能改,也能导入导出成Excel。其他地方的账单,可以先保存到Excel,再通过Excel公式转换过来。我自己现在就是这么做的,银行、信用卡、券商,每个账户都有对应的Excel模板编辑然后导入,汇总一次已经很快了。
当然,用户肯定更希望记账软件自己把这个苦力活干了,直接读取各个账户的数据并转换。但这么做一方面长期不可行,另一方面也涉及不正当竞争,严格讲不合法。
赞同来自: happysam2018 、linns12 、海淘剁手党 、星城学魔法
最近试下来如果有记账需求,感觉做的最好的,是ios的icost。
兄弟,对于你这个软件,我仔细看了下,只能说产品定位有点问题,看说明会用的估计不到10%,里面不嫌麻烦愿意用的可能是10%的10%。 有能力用你这个软件的人估计都没记账需求。
好多年前有个很好的手机操作系统palm,包括现在的nas,都是好用,但太复杂了,脱离了大众,变成少部分群体的宝,最后会用的人越来越少。可惜。
此类家庭财务系统或记账软件,最核心的痛点其实在于:多账户的数据如何同步过来?
比如一般家庭肯定都会有不止一个银行账户,也不会全都集中在一个银行吧?多个银行的数据,如何同步进来?
你说银行数据内外隔离,有监管,无法同步,行。那现在多数人也有互联网账户,不论是支付宝,微信支付账户,还是雪球、东财、同花顺,这些能否同步?
看了楼主的简介,似乎没提到这块儿。也点开了楼主的github文档瞄了一眼,似乎也提到。
如果一个家庭财务系统或记账软件,需要人工手动一个个记录、抄写、复制以上所有账户的数据,那跟现在市面上的东西,没有本质区别,至少没有优势。
如果楼主这个有这方面的优势,请highlight出来,再做后续讨论。
是的啊,想起来了,是被 金蝶收购了现在家财通里面,期指新品种上面没有,你们是怎么增加和记录的呀
反正后来升级到4.0后,每次点“升级”都是没有更新
刚刚我到是好奇,查的时候发现还有什么5.1,甚至到12.x了,只是不知道真假
赞同来自: ryanxzqn
家财通不是被金蝶收购了嘛。是的啊,想起来了,是被 金蝶收购了
我十几年前花98买了这个软件,没多久就倒闭被金蝶收购后,就再也没有更新了。
反正后来升级到4.0后,每次点“升级”都是没有更新
刚刚我到是好奇,查的时候发现还有什么5.1,甚至到12.x了,只是不知道真假
赞同来自: 酱油面
所以我自己也不会天天用软件更新交易记录,只是每半年才把所有账单集中处理汇总一次。而且数据打通了之后,我才好分析整体投资仓位分布、收益率等等信息。对我来说,相比起分析日常开支,对于投资的各方面数据分析重要得多,这才是我编写软件的最主要目的。以前没有TataruBook,我汇总数据就只能靠手工,有了它之后效率大幅提高,因此软件是用来节省时间的。
但是除了“记账软件”这个词,我也想不出更好的名词描述它。大家可以把它理解成“资产和投资数据汇总分析软件”吧。
投资记账 也有同花顺小账本,还有 有知有行 之类的。
投资记账又分侧重静态资产汇总和动态资产收益率分析两大方向。
动态资产收益率展示的软件 我目前觉得最好的是 一心。一心的不足在于对期货期权支持不足,他目前开始开发期货版,但收费比较贵,功能也没超过股票版。
但综合兼顾统一到一款的,我还没找到最合心的。
曾经,有个 单机版国产软件:金蝶家财通我一直在用。。。。很稳定,也沒什么不爽的bug我用的是4.0普及版这个版本后来沒更新了我刚刚顺手上网查了查,好像还有5.1了,甚至还有12.x了,不知道真假亦或是加入了网络功能吧反正4.0够用了这种单机版,最大的好处:1. 隐私不会被泄露2. 不会被各种广告骚扰缺点就是定期得把记账库给备份一下到其它地方保存起来家财通不是被金蝶收购了嘛。
我十几年前花98买了这个软件,没多久就倒闭被金蝶收购后,就再也没有更新了。
xiszero - 不盲目乐观,不赌国运,不对通胀和M2焦虑
之后就不再笔笔记,只是在每月的月末清点下各个账户的资产或负债,消费的具体情况直接看信用卡等的账单。
pppppp - +---++--+-+++++++++++
总收入记账
大支出记账
年底盘点,现金与类现金,就知道总支出了;
股市,期货也一样,
股市账户,总投入100w,年底市值70w,就是亏了30w;
尽量减少转入转出动作,如有,则做一次较大资产出入;
赞同来自: happysam2018 、eye00 、zhuzi51
这个领域一直没有好的国产软件曾经,有个 单机版国产软件:金蝶家财通
我一直在用。。。。很稳定,也沒什么不爽的bug
我用的是4.0普及版
这个版本后来沒更新了
我刚刚顺手上网查了查,好像还有5.1了,甚至还有12.x了,不知道真假
亦或是加入了网络功能吧
反正4.0够用了
这种单机版,最大的好处:
1. 隐私不会被泄露
2. 不会被各种广告骚扰
缺点就是定期得把记账库给备份一下到其它地方保存起来