开发实践学习记录(1):文档的价值

2026-07-22 / 约 1549 字 / 预计阅读 4 分钟 { 教程, 笔记 } [ MCU ]

前言

最近经常被要求写文档。

比如新增了一个功能,或者对原有功能进行了比较大的修改,往往都需要补一份对应的文档。

我一开始其实不太理解这种文档到底应该写什么,就直接把它当成了更新日志来写。

差不多就是一个字数更多、内容更详细一点的 Git Commit Log。

然后就被打回重写了,难受。

后来才发现,貌似不是这么一回事。

因此写一篇博客,简单记录一下我目前对“开发文档到底应该怎么写”的理解。

要写什么样的文档

首先,不要把文档写成 Git Commit Log。

这里并不是说不要写“更新了什么”,而是说:

不要只写更新了什么。

Git Commit Log 更关注的是代码本身发生了哪些变化,比如:

这些当然很重要。

但是一份真正给别人看的开发文档,还应该补充更多上下文。

比如:

因为别人并没有参与你的整个开发过程。

你可能花了几天甚至几周研究这个问题,所以看到一句:

增加 XXX 功能,修改 XXX 接口。

马上就知道发生了什么。

但是别人看到这句话,可能完全不知道:

为什么要改?改之前是什么样?改完以后怎么用?为什么一定要这么实现?

所以文档最重要的一件事,就是把这些你脑子里默认存在的“上下文”补充出来。

最好让一个对这次修改不太熟悉的人,也能够大致看懂发生了什么。

当然,也不是越详细越好。

如果把每一行代码为什么这么写都塞进文档,最后写成几十页,别人可能反而懒得看。

所以我目前比较倾向于:

让新人能够看懂背景,让熟悉项目的人能够快速找到重点。

该详细的地方详细,该省略的地方省略。

文档的价值

以前我对文档的理解比较简单。

感觉代码都已经写在那里了,为什么还要另外写一份文档?

后来才慢慢发现,代码和文档记录的其实不是完全一样的东西。

代码更多记录的是:

“程序现在是怎么实现的。”

而文档还需要记录:

“为什么要这么实现。”

很多设计上的取舍,其实很难只通过代码本身看出来。

比如为什么没有直接修改原有接口,而是增加了一层兼容逻辑?

为什么选择多占一些内存,而不是降低性能?

为什么某个看起来很奇怪的判断不能删除?

这些信息如果没有被记录下来,过几个月以后,可能连当时写代码的人自己都忘了。

更不用说后来接手项目的人。

所以文档其实也是个人或者组织知识库的重要组成部分。

代码会告诉你“现在是什么样”,而文档可以帮助你理解“为什么会变成这样”。

对于长期维护的项目来说,这些信息非常重要。

而且现在 AI 越来越强,好的文档还有一个新的价值:

它本身就是高质量的项目上下文。

如果一个项目拥有比较完整的设计文档、接口说明、修改记录和问题分析,那么无论是本地 AI 还是其他代码 Agent,都可以更快理解整个项目。

相比直接把几十万行代码全部丢给 AI,让它自己猜历史背景,一份写得清楚的文档往往能提供更有效的信息。

所以从这个角度来看:

好的文档,本身就是一种高质量的数据资产。

它不仅方便人维护项目,也能让 AI 更快地理解和协助开发。

总结

总之,写开发文档时要意识到一件事:

别人没有你脑中的“上下文”。

你经历了需求讨论、代码阅读、Bug 调试和方案选择,所以很多事情对你来说可能已经是理所当然的。

但是别人并不知道这些过程。

因此文档不能只告诉别人:

“我改了什么。”

还应该尽量解释:

“为什么要改、怎么使用、有什么影响、需要注意什么。”

当然,也不要为了显得详细而写一大堆没有必要的内容。

一份好的文档,应该让需要了解这件事的人能够快速获得足够的信息。

公司要求写文档,通常也不是为了让你以后拿出来“复习”。

更多时候是为了团队协作、知识传递和长期维护。

毕竟代码写完以后,真正需要维护它的人,未必还是当初写代码的那个人。


文章作者:成元
上次更新:2026-07-29