跳转至

别再幻想用 Spec 替代写代码

Ch01.1216 别再幻想用 Spec 替代写代码

📊 Level ⭐⭐ | 4.8KB | entities/别再幻想用-spec-替代写代码.md

别再幻想用 Spec 替代写代码

来源: 高可用架构

发布日期: 2026-03-23

原文链接: https://mp.weixin.qq.com/s/GxCAP6SjYPQ-WOFseZzGKA


本文本质上是把下面这幅漫画展开成了一篇完整的博文:

漫画大意:

1️⃣ 总有一天我们甚至不再需要程序员了。我们只需要写好规格说明书(Spec),程序就会自动生成。

2️⃣ “噢哇,你说的太对了!我们要做的就是写出一份详尽、精确的 Spec,然后‘砰’的一声,我们就不再需要程序员了!”

“没错!”

3️⃣ “那你知不知道,在业界,一份足以用来生成程序的、既详尽又精准的项目 Spec 规格说明书,叫什么名字?”

“呃……不知道……”

4️⃣ “代码。”

“这玩意儿就叫代码。”

这则漫画的笑点在于,许多人认为“写文档”比“写代码”简单,但实际上,如果你能把逻辑描述得足以让机器完美运行,那个描述过程本身就是编程。

很长一段时间以来,我不觉得自己需要写这样一篇文章。每当有人提出"能不能从 Spec 自动生成代码"的想法,我把上面这张图甩给他们就够了。

但现在,Agentic Coding 的倡导者们声称找到了一种"反重力"的方法,纯粹从 Spec 文档就能生成代码。不仅如此,他们还把概念搅得很混,所以我觉得有必要对上面那幅漫画做一些展开说明,解释为什么他们的说法站不住脚。

在我看来,他们的鼓吹建立在两个常见的误解之上:

误解 1:Spec 文档比对应的代码更简单

当他们面向"信徒"推销 Agentic Coding 时,就会拿这个误解当卖点。这些信徒把 Agentic Coding 当作新一代的外包,他们幻想着工程师只需要当管理者,写好 Spec 文档,然后扔给一群 Agent 去干活。但这套逻辑能成立,前提是"描述工作"比"亲自做工作"更便宜,而事实并非如此。

误解 2:写 Spec 一定比写代码更深思熟虑

当他们面向"怀疑者"推销 Agentic Coding 时,就会拿这个误解当挡箭牌。怀疑者担心 Agentic Coding 会产出无法维护的垃圾代码,而他们的反驳是:先写 Spec 再生成代码,这个过程会倒逼质量提升,促进更好的工程实践。

接下来,我会用一个具体例子来说明为什么这两个都是误解。

披着散文外衣的代码

我先从 OpenAI 的 Symphony 项目说起。OpenAI 把它当作"从 Spec 文档生成项目"的标杆案例。

Symphony 是一个 Agent 编排器,号称完全由一份"Spec"(SPEC.md)生成。我之所以给"Spec"加引号,是因为这份文件与其说是 Spec,不如说是用 Markdown 写的伪代码。只要稍微深入看一下,你就会发现它包含这样的内容,用大段文字列出数据库字段:

4.1.6 Live Session(Agent 会话元数据) 编码 Agent 子进程运行时跟踪的状态。

字段:

session_id (string, -)

thread_id (string)
turn_id (string)
codex_app_server_pid (string or null)

last_codex_event (string/enum or null)

last_codex_timestamp (timestamp or null)

last_codex_mes

原文存档


关联