第六篇:独立开发者的文档求生指南

第六篇:独立开发者的文档求生指南

——一个人维护多个项目,如何不被遗忘淹没

系列导读:这是《老项目如何引入文档驱动》系列的第 6 篇,也是最后一篇。前五篇我们聊了团队场景下的文档驱动实践。但很多读者反馈:我是独立开发者,一个人维护多个项目,文档驱动对我有用吗?这篇文章就是要回答这个问题。


张三的崩溃:2 天才想起来的设计

张三是一名独立开发者,同时维护 3 个客户的项目。

周一早上,客户 A 突然来消息:

“能不能加个银联支付?客户要求的,这周五上线。”

张三打开代码,傻眼了。

他完全不记得:

  • 支付回调是怎么处理的

  • 为什么用了这个第三方库而不是那个

  • 那个奇怪的 if 判断是干什么用的

为什么?

因为这个项目,他已经 3 个月没碰了。

上次改支付模块,还是 3 个月前。当时的设计思路、踩过的坑、为什么这样权衡,全忘了。


张三花了整整 2 天,才勉强想起来当时的设计思路。

他翻 Git 提交记录,看自己 3 个月前写的代码,看 Commit Message(都是“fix bug”、“update”),看数据库表结构,看第三方文档……

An image to describe post

客户催得急:

“怎么还没开始写代码?”

张三很焦虑:“我得先理解现有的代码啊!”


周五晚上 11 点,张三终于改完了。

客户很满意,但张三很累。

更重要的是,他意识到:这样下去不行,下次切回来,又要花 2 天回忆。


这就是独立开发者的痛点:

频繁切换项目,每次都要花 1-2 天“回忆”当时的设计。

时间都浪费在“回忆”上,而不是真正的开发。

张三决定:必须找个办法记录关键信息。

An image to describe post


第一次尝试:写文档(完全没用)

周末,张三花了一整天,给 3 个项目各写了一份“项目文档”。

他记录了:
技术栈(Spring Boot + MySQL)、核心流程(用户下单 → 创建订单……)、注意事项(支付回调要验证签名……)

张三当时还挺满意:终于把文档补上了!


3 个月后,客户 A 又来需求。

张三打开文档,看了 5 分钟。

然后发现:完全没用。

“技术栈”?我当然知道用的 Spring Boot,这有什么用?“核心流程”?这个看代码就知道了。“注意事项”?太泛泛而谈,根本想不起来当时的具体设计。

张三发现:第一版文档完全是废话,没记录关键信息。

他还是花了 2 天,重新理解代码。

文档?白写了。

An image to describe post


第二次尝试:用 AI 生成(更惨)

第 2 周,张三想:既然自己写不好,不如用 AI?

他让 AI 读了客户 B 项目的代码,生成“项目文档”。

AI 生成的 :用户管理(JWT 验证)、数据管理(MyBatis)、定时任务(凌晨 3 点)……

张三看完后,崩溃了:

这写的都是什么?这些我当然知道!

AI 完全没有记录关键信息: 为什么用 JWT 而不是 Session?定时任务为什么是凌晨 3 点?


更糟的是,AI 生成的文档有 40% 是错的:

  • AI 说“定时任务每天凌晨 3 点执行”,实际是凌晨 2 点

  • AI 说“用户权限控制用了 RBAC”,实际是简单的角色判断

  • AI 说“数据导出支持 Excel 和 PDF”,实际只有 Excel

张三花了整整 1 天,修正 AI 生成的文档。

修正完后,他发现:比自己从零写还慢。

张三很崩溃:

“早知道这样,还不如自己写。AI 就是个坑!”

张三放弃了用 AI,改为手写。但手写又很慢,他又没时间。

An image to describe post


第三次尝试:只记录关键决策(有用了!)

第 3 周,张三反思了一下,发现第一版文档为什么没用:

因为他记录的都是“显而易见的信息”(技术栈、核心流程),没有记录“容易忘记的信息”(设计决策、踩过的坑)。


张三调整了文档内容:

支付模块关键决策:

  • 为什么用同步调用?(客户要求立即反馈,虽然性能稍差)

  • 为什么回调用两层验证?(之前遇到过伪造回调攻击)

  • 支付回调可能延迟 10 分钟(增加了主动查询,每 5 分钟查一次,别查太频繁会被限流)

这次的文档,只记录“关键决策”和“常见的坑”,不记录显而易见的信息。


2 个月后,客户 A 又来需求。

张三打开文档,看了 5 分钟。

这次,他没有花 2 天回忆,5 分钟就想起来了!

张三很兴奋:文档是真有用!


但他很快发现新问题:

文档过时了。


文档过时:误导了自己改出 bug

又过了 1 个月,客户 A 的支付突然出问题,用户投诉:“支付失败了,但钱被扣了!”

张三赶紧排查,看了一眼自己的文档:

“支付回调每 5 分钟查一次,最多查 3 次。”

张三按照文档理解的逻辑,修改了重试机制。

上线后,问题更严重了:支付更慢了,用户投诉更多了。


张三崩溃了,重新看代码,发现:

他 1 个月前已经把查询间隔改成 10 分钟了,但忘了更新文档。

文档说 5 分钟,实际是 10 分钟。

张三按照过时的文档改代码,结果改错了。


张三很崩溃:

“我本来是想用文档帮助自己,结果反而被文档误导了!”

“文档过时了,还不如没有!”

那天晚上,张三认真考虑过:要不把所有文档都删了,算了?

但删了,下次回来又要花 2 天回忆。不删,文档过时又会误导自己。

张三陷入了两难。

An image to describe post


录语音的坑:1 小时找不到

张三想:写文档太慢,要不录语音?

改完代码后,打开手机语音备忘录,录 1 分钟:

“我刚改了支付回调的逻辑,原来是每 5 分钟查一次,现在改成每 10 分钟。为什么改?因为支付宝限流了,查太频繁会报错。这个坑我踩了 2 天才发现,记住!”

张三当时觉得:这个方法真快!1 分钟搞定!