代码是最容易的那部分

何益茂Felix He
发布于 Published 2026.09.22·约 3 分钟读完3 min read

我高中同学在深圳做货代。我人在加拿大。今年五月,他问我能不能帮他想想办法,别让单据老丢在微信群里。

四个月过去,这句话变成了 1,364 次提交。他公司所有的数 —— 每一票货、每一笔费用、每一分提成 —— 现在都活在一套我晚上写出来的东西里面。

过程跟我想的完全不一样,所以想把它记下来。

第四天

第一个版本是第四天上线的。

不是原型。是真的跑在服务器上:登录页、运单列表、编辑表单、用户管理,还有一个一行搞定的部署脚本。我知道是第四天,因为提交记录还在那儿 —— 5 月 13 号到 16 号,一共十次。

这是现在大家最爱听的那一段。我是跟 Claude 一起写的,那个速度是真的:本来要一个月的活,一个周末干完了。

于是我以为剩下的也会这样。

然后就到了六月

并没有。

运单列表是容易的那一半。另一半是钱:一票货到底花了多少、谁欠谁多少、业务员挣了多少。这部分我是六月底开始动的。现在是九月底。我还在改。

提交记录比我讲得清楚:

这个陡坡不是我变快了。是这套软件从"管货"变成"管钱"的那个月。

真正难的是什么

从来不是代码。

复式记账是个早就被解决的问题,查就查得到。查不到的是下面这几个,它们吃掉了我整个夏天:

这些没有人能告诉我答案,也没有任何文档写着。每一条都是先做错一次 —— 用真金白银做错 —— 然后在我这边的半夜,跟他在微信上吵出来的。

这是我完全没料到的一件事:AI 让写代码快了大概十倍,让"决定代码该干什么"快了整整零倍。

搞砸的那些

这个站说好了要写这些的,那就写:

为了快点,我开了好几个 AI 会话并行干活。其中两个从项目的不同副本往生产服务器上部署,悄悄把对方的成果各自回滚掉了。过了好一阵才有人发现。

还有一个晚上,我去清理一个不该由我清理的工作目录。十三个文件、从来没提交过的代码,没了,而且是 git 救不回来的那种没了。

我还有一次告诉我同学,他的账差了 1,562 块。并没有差。是我自己另写了一套"这笔是不是已经冲销过"的判断,而现成的那个判断,就在三行之外。

我那份项目手册上的每一条规矩,背后都有一件这样的事。只能一个人部署。所有决定都上同一块板。碰钱的改动必须跑完整套测试。没有一条是提前想出来的 —— 全都是拿代价换的。

我在乎的那个数

账本现在有 20,447 行。借方减贷方:0.00。

这是整个项目里唯一一个我愿意挂在墙上的数字。不是提交次数,不是功能清单。一家真公司四个月的钱,从一套吃完晚饭才开始写的软件里走了一遍,账还能平到分。

如果能跟五月的自己说句话

先做那个无聊的部分。它不无聊。

还有:下次再有人说他的系统"只是"要管一下订单,问他一句 —— 那钱怎么办。这一个问题,就是整个项目。

接着读Read next

← All writing← 全部文章