🤖 AI时代,文档编制的标准是否需要提升?
核心命题:当AI成为代码生成的主力,文档将从”给人类阅读的辅助材料”升级为”给AI执行的操作规范”。
一、现状:文档正在成为AI的”输入”
从RAG系统说起
在AI搜索产品Devv的技术分享中,团队指出一个关键洞察:
“The quality of the index is crucial to the RAG system; its effectiveness determines the output quality of the entire system.”
(索引的质量对RAG系统至关重要,其有效性决定了整个系统的输出质量。)
这不是个别现象。几乎所有RAG(检索增强生成)应用的核心瓶颈都是文档质量:
- 文档格式混乱 → 检索不到正确内容
- 术语不统一 → AI理解产生歧义
- 结构缺失 → 关键信息被噪声淹没
当Devv构建面向开发者的垂直搜索时,他们花了大量精力按function/symbol维度切分文档,并为每种编程语言开发专用解析器。这说明:文档的组织方式直接影响AI的理解效果。
二、现象:开发者不爱写文档,但AI需要好文档
一个反直觉的观察
Stack Overflow的调研显示,开发者普遍热爱整洁代码却厌恶编写文档。这有历史原因:
- 文档回报周期长 — 代码能跑就是成功,文档没人打分
- 维护成本高 — 代码改了文档没改,反而误导
- 没有强制性约束 — CI/CD不检查文档质量
但现在,情况在起变化。
AI编程工具的文档依赖
当开发者用GitHub Copilot、Cursor等工具编程时,AI在背后依赖大量文档来理解:
- 库/框架文档 — 决定AI能否正确调用API
- 代码注释 — 补充代码本身无法表达的业务逻辑
- README和架构文档 — 帮助AI理解项目整体结构
一个在HN上分享的案例(JJLDonley)值得关注:他用AI(Codex)从零构建了一门编程语言Simple,整个过程中他坚持:
“It was absolutely important that the AI understood that the documentation was the authority on design.”
他制定了严格规则:文档是设计的唯一权威,AI必须基于文档编写实现,所有变更必须记录在日志中,测试必须基于文档设计而非反过来。最终他用AI协助写出了近1200个测试用例。
三、论点一:文档正在从”辅助”变成”契约”
从”写给人类”到”写给AI”
传统文档的核心读者是人。人可以从代码上下文、注释、甚至”凑合着理解”来完成任务。
但AI不同。AI没有直觉,它只会:
- 精确匹配 — 文档里有什么,它才能用到什么
- 字面理解 — 歧义的表述会导致错误执行
- 有限上下文 — 受限于token窗口,大型代码库需要高度结构化的文档
这就产生了一个根本性的转变:文档不再只是”解释”,而变成”规约(Specification)”。
文学编程的回归
“文学编程”(Literate Programming)是Knuth在1984年提出的概念,主张程序应该以自然语言为主、代码为辅来编写,让人类能够更清晰地表达思想。
这个理念在AI时代获得了新的意义:当AI能同时阅读文档和代码时,文档的可读性、完整性和精确性将直接影响AI生成代码的质量。
这并不是说每行代码都要写注释,而是说文档应当能够完整、无歧义地描述系统的预期行为。
四、论点二:开发者角色从”写代码”转向”写规约”
“编程”定义的扩展
如果AI能够根据自然语言描述生成代码,那人类在编程过程中的角色是什么?
答案是:从”代码的写作者”变成”意图的表述者”。
这意味着:
- 写清楚”要做什么”比”怎么做”更重要
- 业务逻辑的文档化将成为主要工作
- 代码的正确性由AI负责,规约的正确性由人类负责
上下文工程(Context Engineering)
近期社区开始讨论一个新兴概念:上下文工程(Context Engineering)。它的核心是:
与其优化模型,不如优化提供给模型的输入。而文档,是输入质量的核心载体。
类比一下:好的文档就像好的接口设计——它定义了清晰的边界、明确的前置条件和可信的后置结果。AI在这些”接口”之上构建解决方案。
五、论据支持:来自实践的证据
证据1:Token窗口限制让文档结构变得生死攸关
当前AI模型的上下文窗口(如128K tokens)在面对大型代码库时仍然是有限的。这意味着:
- 完整代码无法一次性注入 → 必须依赖结构化文档来摘要
- 文档的检索优先级 > 代码的细节 → 文档的信息密度至关重要
- 文档的缺失意味着AI”盲操作” → 出错概率大幅上升
证据2:Devv们正在重新定义”文档索引”
Devv AI的技术方案中,对文档做了精细的处理:
- 按function/symbol维度结构化切分文档
- 为每种编程语言开发专用解析器
- 代码片段被语义化处理,提取调用关系、函数定义等逻辑结构
这一工作的前提是:文档本身必须足够结构化。松散的、纯叙述性的文档在AI检索场景下几乎无法发挥作用。
证据3:AI生成代码的”规约依赖”
多项实验表明,当提供高质量规格说明时,AI生成代码的正确率显著提升。反之,模糊的、”差不多就行”的描述会导致AI生成大量错误代码并难以发现。
这意味着:文档质量将成为决定AI编程工具生产效率的瓶颈。
六、反方观点与反驳
反方:代码即文档,代码本身足够自描述
有人认为,如果代码写得足够好(如遵循Clean Code原则),文档是多余的。
反驳:代码只能表达”怎么做”,很难表达”为什么这样做”和”不这样做会怎样”。业务规则、架构决策、设计权衡,这些信息在代码中几乎是隐形的,需要文档显式承载。
反方:AI已经能从代码推断意图
GPT-4等模型确实能从代码推断含义,但推断 ≠ 理解。AI在面对边界情况、未完成代码、或者需要业务背景的决策时,仍然严重依赖显式文档。
反方:文档写作成本太高
这确实是核心挑战。但正因为如此,才更需要提升文档编制的标准,让文档更精准、更有价值,而不是干脆不写。用更少的文档做更多的事,本身就是标准提升的意义。
七、结论:标准需要提升,且这是开发者的一次机会
命题成立
回到最初的问题:AI时代,文档编制的标准是否需要提升?
答案是是,而且理由充分:
- AI依赖文档 — RAG系统和AI编程工具的性能直接与文档质量挂钩
- 文档正在变成规约 — 从解释性文本变成可执行的规格说明
- 开发者角色在转变 — 从写代码转向表述意图,文档是表述意图的媒介
这不是负担,是杠杆
对于开发者而言,提升文档编制标准不是增加负担,而是用一份投入获得双重价值:
- 好文档 → 人类更容易理解 → 团队协作更高效
- 好文档 → AI更容易理解 → AI辅助编程更准确
当文档足够精确时,AI能够替代人类完成大量重复性的代码实现工作,人类则专注于更高层次的抽象和决策。这不是开发者被替代,而是开发者角色的升级。
建议行动
对于个人开发者和团队:
- 将”文档质量”纳入代码Review的检查项
- 优先编写接口文档和行为规约,而非详细实现说明
- 参考Devv等工具的文档结构化思路,按功能单元组织文档
- 尝试”文档先行”(Doc-Driven Development)的工作流
📚 参考来源
- Devv AI技术分享:https://devv.ai
- JJLDonley/Simple项目:https://github.com/JJLDonley/Simple
- Stack Overflow Blog:”Why do developers love clean code but hate writing documentation?”
- Hacker News社区讨论:Context Engineering as Code
| *本文观点基于网络社区讨论与公开技术分享,论点论据均附有来源。 | Views based on online community discussions and public tech sharing.* |