吐槽归吐槽,重写 Beancount 的第三天,在还没有完全实现全部功能+覆盖测试的基础上,我尝试用它来解析我的 Beancount 账本: 我觉得应该会解析失败,毕竟我的账本横跨 6 个文件,超过 5000 个条目,涉及货币币种转换,最近还引入了股票格式,应该算是相对复杂的账本了。结果确实是解析失败了(图1),但是我看了看失败原因,居然是我的 Swift 实现更严格导致的: Beancount 文件格式规范中,一个 Account 名字,账户名称后面用纯数字是有效的(如“Liabilities:Installments:13Pro”),但是 AI 在给我实现的过程中,过度发挥了,把纯数字开头的账户名称设置成无效了,而我在检查测试中也没有发觉。 所以接下去就好办了,删除过度发挥的代码+测试(图2),重新编译 demo + 运行,成功解析账本!(图3) 当然,我没有一一检查账本里面的信息都是正确的,目前只能说是解析出来了,离真正可用+完美还有距离。但是我还是很吃惊在这么短时间内达成了一个里程碑。 毕竟我只花了三天时间,每天约 5 小时左右,就用 Swift 把 Beancount 实现了个大概出现。这在以前是不可想象的。 有了这次经历,至少我相信 TDD 驱动的 AI 编程绝对是可行的。