主题
第 11 章 不可逆系统工程学 · 链上考古的最终答案
这套书讲过三次同一条定律,进了公共世界的东西,只能追加,不能背叛。Git 的公共历史,已发布的 API,链上的合约。这一章把三次伏笔收成一门完整的方法。先把这门课的学费单摆出来。一次看似无害的重命名,AI 执行得又快又漂亮,但它不知道我们有一份已部署上链、永不能改的合约必须与代码库一致。两边失同步,我们花了好几天做链上考古。第一册第 12 章讲过这个故事的教训(红线必须由人来划),这一章讲完整的制度,一共五条。
第一条,识别与标注。先分清你的世界。可逆的,本地代码,草稿,测试数据,尽管折腾。不可逆的,已推送的历史,已发布的接口,群发出去的邮件,花出去的钱,链上的一切。然后把不可逆清单白纸黑字写进宪法,AI 不知道你的红线在哪,除非它每次开工都能读到。
第二条,环境阶梯。不可逆世界的每个动作,都要先在可逆世界排练。网站的阶梯是本地,预览,生产(第一册第 11 章)。链上版本是本地,测试网,主网。测试网就是区块链世界的 Preview,一切代价为零的彩排场。铁律,没在阶梯下层走通的东西,不上上层。
第三条,冻结与版本。不可逆世界里没有"改",只有"新版本加迁移路径"。API 不改 /v1,开 /v2。合约不改旧的,部署新的并声明交接。由此推出一条纪律,部署即冻结,上线那一刻的代码要打上版本标签存档,让"链上跑的到底是哪一版"永远有据可查。documint 事故的根因,就是这条没立住。
第四条,双人规则。一切不可逆动作,必须第二双眼睛看过才执行。这条规矩承认的是所有人(和所有 AI)都有盲区,信任问题反倒在其次。第二双眼睛不一定是另一个人。有搭档就互相看。一个人做项目,就用隔了一晚的自己,把要执行的操作单白纸黑字写下来,放到第二天对着单子逐项复核再执行,盲区会自己浮出来。铸造前,群发前,动 DNS 前,都值得停这一晚。
第五条,为考古留证。接受一个成熟的假设,总有一天要回头查。所以每次冻结都留全证据,代码快照,参数,时间,再给冻结的版本一个链上出生证明。这正是 EchoUploader 存在的意义,把发行版的哈希写进链上,从此"这一版是什么、何时定稿"有了谁也改不了的证据。这套书自己的 PDF 走的就是这条路,冻结,校对,存证。不可逆技术最好的用途,是为对抗"不可逆的损失"作证。
关键领悟
可逆世界的美德是快,不可逆世界的美德是慢。工程师的成熟,是每个动作前都清楚自己此刻站在哪个世界里,然后用对那个世界的规矩。
试一试
给你的项目列一张不可逆清单,逐项过五条。标注了吗,有阶梯吗,有版本纪律吗,谁是第二双眼睛,证据留在哪。缺哪条,补哪条。这张表值得进宪法。