
个真确53万行代码AI重写案例的完满拆解:从被骂到合并莆田储罐保温厂家,从法论到四个硬前提——读完你会对我方的表情能不成复制这种率,有个知道的判断框架。
01掌捏AI扶持大领域重写的四步法论——不是句prompt
02赢得判断我方表情是否妥贴访佛式的四个前提自诊框架
03意会「AI替代范例员」这个说法的逻辑纰谬在那处
"启动我不信这能成。"
Jarred Sumner 说的是真话。2025 年 12 月,他把我方手造的 JavaScript 运行时 Bun 给了 Anthropic。个其时月下载量 720 万、收入为、靠 2600 万好意思元融资撑了四年的开源表情。收购后他拿到的不是资金或职位,是件事:Claude Fable 5 的预发布版,其时外界还莫得东谈主能用。
于是他产生了个想法。Bun 的代码库是 535,496 行 Zig,不含细心,悉数 1,448 个文献。这些代码他我方写的。每个模块的弃取、每处手动惩办内存的代价、每条 unsafe 旅途的 tradeoff,他王人切身尝过。安全 Rust 的编译器甘心把这些内存 bug 一谈造成编译器乖僻。但手动重写,需要冻结开导整整年。
他决定让 AI 试试。11 天后,他合了代码。
一谈测试通过。53 万行代码,从 Zig 造成了 Rust。百万个断言,条没少。
01. 个见了鬼的内存 bug 清单
搞懂法论之前,先问个基本的问题:为什么要重写?
Bun 的 Zig 代码库里埋着种反复出现的灾荒:use-after-free。个对象被开释了,背面还有代码在用。double-free。内存清晰。race condition。Zig 给了 Jarred 套内存惩办器用。但器用和保障是两回事。Zig 莫得析构函数,defer 要手动写在每个调用点。编译器不会抑止你把已开释内存的指针传给下个函数。
Jarred 我方的原话狠:
「"Just be really smart and don't make mistakes?"」
这是他我方写的个末节标题,个问号放在句尾,嘲讽拉满。
Bun 的 C++ 依赖占了代码库野蛮五分之,主要来自 JavaScriptCore 引擎。JavaScriptCore 自带套保守栈扫描的垃圾回收器,它会扫描整个这个词栈来找指针。但这套 GC 和 Zig 的手动内存惩办混在起时,问题就变得特殊毒手。C++ GC 认为是辞世的对象,Zig 侧可能照旧手动开释了。反过来,Zig 侧合计应该还辞世的内存,C++ GC 可能早就收走了。这种夹杂在工业系统里是种苦楚的需求,也因此鲜有现成的佳实践。每个新版块王人可能在某台特定机器上、某个特定 load pattern 下触发个跑了半年王人没被发现的 use-after-free。
遵循等于 bug 列表越来越长。代码本人莫得写得不好。但 53 万行手动惩办内存,这个领域本人照旧过了东谈主类的容错范围。你不错写万行的 C 不出错,但 53 万行?你启动依赖作风指南、code review、团队顺次、命运。而每条你加进作风指南的规则,Rust 的编译器在十年前就照旧把它造成了编译乖僻。
安全 Rust 给的谜底是编译器强制实施,不是给东谈主好的器用。在 safe Rust 里,use-after-free 和 double-free 是编译乖僻。你的 PagerDuty 恒久不会因为条已开释指针被凌晨三点唤醒。borrow checker 在你写完代码的那刻就告诉你哪条生命周期断了,不等用户撞上 crash。
问题是:你怎样把 53 万行 Zig 造成 Rust,同期不废掉整年的开导速率?
02. 他让 AI 搞了场分娩线
大部分东谈主对 AI 重写代码的假想很简便:代码丢进去,说「用 Rust 重写」,等遵循。Jarred 的实践操作是另码事。这是他了四年的代码,他知谈每行的骨头长什么样。但他莫得我方来源翻——他搭了条分娩线。
步,3 小时对话,产出本翻译辞书。
Jarred 莫得径直丢代码。他和 Claude 聊了 3 个小时,逐条不息 Zig 中每种模式在 Rust 里的等价写法。Zig 的 std.mem.Allocator 对应 Rust 的什么?手动 defer 怎样映射到 Drop trait?Zig 的编译期反射如安在 Rust 里用宏和 trait 罢了?他骨子上在作念件事:把我方大脑里对整个代码旅途的意会,翻译成 AI 能读懂的规则。
对话的居品是个文献:PORTING.md,本从到全量的机械翻译指南。接着他又让 Claude 分析了每个 struct 字段的生命周期,产出了二个枢纽文献:LIFETIMES.tsv。逐字段标注:这个指针谁领有、谁借用、何时开释、有莫得跨线程传递。
没这两个文献就莫得背面的任何事。AI 能翻译代码,靠的不仅仅大模子的聪惠。它靠的是把隐常识化。Jarred 在我方脑子里知谈每条内存旅途的意图,但 AI 不知谈莆田储罐保温厂家,代码里也没写。这两个文献等于常识传递的载体。换句话说,他不是让 AI 诬捏意会他的代码——他把他我方的意会先写给了 AI。
二步,先试 3 个文献。
他莫得上来就全量跑。挑了 3 个有代表的文献跑 trial run:个明白器模块、个 I/O 颐养模块、个 HTTP 处理旅途。跑通明回到 Zig 原版对比作为,证据机械翻译莫得引入语义偏移。3 个文献全绿之后,他才把历程到剩下的 1,445 个文献。
这里有个阴事的工夫条目,是整个这个词实验能成立的前提:Bun 的测试套件是用 TypeScript 写的,与罢了讲话关。同个 ts 测试文献,底层是 Zig 如故 Rust,它只认个东西:断言遵循。HTTP 恳求复返的 status code 是 200 吗?文献读出来的哈希值对吗?WebSocket 的帧轨则对吗?百万条断言,每条王人是条作为协议。关于 AI 重写来说,这个测试套件等于客不雅裁判。它不温煦代码是怎样写的,它只问遵循对不合。
大多数表情莫得这个东西。你有若干测试是用被测讲话本人写的?你的测试里有若干 mock 和 stub 对罢了细节作念了硬编码假定?莫得讲话关的测试套件,AI 重写就失去了唯的客不雅反馈信号,你只可靠东谈主肉看代码来判断对错,而这个过程的资本会径直同一整个率。
三步,50 个 Claude Code 动态使命流,流通跑 11 天。
1 个 prompt 不够,50 个 prompt 也不够。需要的是 50 个动态使命流,每个使命流里面包含串范例:读 PORTING.md 建立高下文,读个 .zig 文献,生成对应的 .rs 文献,树立编译器乖僻,跑联系测试,检讨失败的断言,定位乖僻,修改代码,重新编译,重新跑测试。反复迭代直到通过。
Jarred 的角在历程层面把关:这个使命流的 prompt 策划是否合理?翻译后的 Rust 代码质料用什么式考据?当测试失败时,是修改使命流如故手改代码?他我方的原则很明确:树立产生代码的历程,不要手动修代码。手修了个 bug,未来通常的 bug 会在另个文献里重新出现。修了历程,这个 fix 会应用到整个 1,448 个文献。
四步,反抗审查。
这是整个这个词法论里聪惠的步。
Jarred 发现了个问题:让同个 Claude 既写代码又审查我方写的代码,它会有证据偏误。罢了者倾向于认为我方的罢了是对的,会在审查时放过那些看起来合理的乖僻。于是他拆成了三个角,每个角跑在立的高下文窗口里:
个罢了者看到原始 Zig 代码、PORTING.md、以及我方的翻译理过程。两个以上的反抗审查者只看到 Rust 版块的 diff,不知谈罢了者的理过程,铝皮保温不知谈代码的意图。审查者的唯领导是:「假定这段代码是错的,找出 bug。」
这种信息不合称是刻意制造的。审查者不被罢了者的想路带偏,只可从纯遵循角度判断——这段代码的作为,在边缘条目下,会不会出错?
审查者抓出来的问题是真确存在的,每个王人有 commit 援用可回查。三个典型案例:
例,Box 的 use-after-free 加 double-free。异步 uv_close 把 Pipe 开释了,但背面还有代码在用这段内存。Rust 编译器不会报错,因为 unsafe 块跳过了 borrow check。这种 bug 在 Zig 原版里是被手动 defer 保证的,到了 Rust 里,罢了者机械地翻译了戒指流但漏了生命周期拘谨。
二例,f64 负数的 trunc 和 floor 作为相反。负 0.5 的 trunc 复返 0,但纳秒计较需要向下取整到负 1。罢了者用了 trunc,遵循生成了个在数学上不可能的值,传给系统调用后越界 panic。编译通过,语义错了。
三例,unwrap_or 的殷切求值。Rust 的 unwrap_or(b) 在参数是 Some 时仍然会实施 b。若是 b 有作用,比如修改计数器或清算资源,逻辑就会介意中偏离原版。罢了者把它当成了 C 的短路求值来翻译。
三条王人是编译通过的代码。三条王人看起来合理。三条王人是东谈主仔细读才气发现的 bug。
反抗审查的底层逻辑值得单拎出来说。不是审查 AI 的立场是否正经——是运用 AI 之间的信息不合称来迫临真相。罢了者有一谈高下文但可能自欺,审查者莫得高下文只可靠遵循反。
离别之处,bug 驻足之所。
03. 被骂了 6 天,然后甩出篇博客
这套法论的次公开,源于次「翻车」。
2026 年 5 月,有东谈主在 Bun 的 GitHub 仓库里发现了个分支,名为 claude/phase-a-port。里面放了份 PORTING.md,Zig 到 Rust 的翻译指南。有东谈主在 Hacker News 上发了帖,标题直白:Zig → Rust porting guide。帖子爆了,723 分,555 条评述。
然后社区炸了。
有东谈主说这是 AI 鬼画符,个 stochastic parrot 的产出,连编译王人就怕能过,遑论跑分娩。有东谈主搬出了 Jarred 几个月前在 X 上的爆论:"I expect OSS to go the opposite direction: no human contribution allowed. Slop will be a nostalgic relic of 2025 & 2026." 再加上 Bun 其时刚出过内存清晰 crash 分娩环境的新闻,vibed code 造成了流行的嘲讽标签。社区潮流般的评述里出现了个知道的叙事:Bun 被收购后首创东谈主飘了,用 AI 乱搞,代码不审就敢公开分支。其中有条评述的点赞数飙升——轻视是「个被 Anthropic 收购的调表情,branch 名带 claude/ 前缀,这不叫实验,这叫表态。」
Jarred 切身下场了,在这条帖子页就出了我方的评述:
「"This whole thread is an overreaction. 302 comments about code that does not work. We haven't committed to rewriting it. There's a very high chance all this code gets thrown out completely."」
但这话消亡在了 555 条评述的杂音里。HN 的个用户用句话戳中了环节:「当你在个被全天下受关注的公司领有的调开源表情上使命时,你的分支名和提交信息本人等于种对外疏通。东谈主们会把它解读为意图。」
6 天后,Jarred 在 Bun 的官博客上发表了《Rewriting Bun in Rust》。
莫得辩解,莫得回话争议。径直亮出遵循:合并了。整个测试通过。11 天。
社区的响应从「他在瞎搞」造成了「他怎样作念到的」。
被骂了 6 天,然后甩出遵循——这才叫回话。
04. 11 天顶年?范围比数字紧迫
咫尺必须讲解晰件事:这个 11 天顶 3 个工程师年的对比,在什么前提下成立?
个前提:有个讲话关的、包含百万个断言的测试套件。测试本人等于作为规格,它告诉你作念对了如故作念错了,不需要东谈主去判断。大多数表情莫得这种东西。你的测试里有几个是纯作为断言?有几个底层罢了换就一谈崩掉?
二个前提:有精准的作为规格,原始代码本人等于。Bun 的 Zig 版块照旧在分娩环境跑了四年,月下载量从涨到千万。它的作为不是诬捏预计——它等于个活的规格讲解书。AI 重写的任务是作念到形态,不消从需求启程重新罢了。这件事比从开导要容易得多。但比你以为的容易,不是 AI 的功劳,是规格的功劳。
三个前提:操作家我方写了整个原始代码。Jarred 濒临的不是生分代码库。他 2021 年 4 月 16 日写下 Bun 的行 Zig,在奥克兰个短促的公寓里,LLM 还没出现。他对每行的意图、每个边缘条目的弃取、每条 unsafe 原理王人有肌肉系念。PORTING.md 的骨子是他的隐常识翻译成了 AI 能读懂的规则。换个工程师来,光意会这些代码可能就要几个月。
四个前提:用的是前沿的 AI 模子。Claude Fable 5 在其时是预发布版,Jarred 能拿到是因为 Bun 照旧被 Anthropic 收购。庸俗用户其时莫得这个版块。粗陋估算,你今天用的 AI 编程器用跟他其时用的,聪慧商可能差了个数目。
这四个前提缺任何个,11 天会径直坍弛。你会濒临 AI 写的看起来合理但在特定场景下崩溃的代码,花无数时间调试却找不到 root cause,后怀疑整个这个词案是否可行。你会重新回到东谈主肉重写的轨谈上,但照旧奢侈了几周的时间。
这恰是这件事有价值的地。它不是解释 AI 照旧能替代范例员了。它是在解释:当骄横这四个条目时,AI 能让个顶范例员的产能放大个数目。
这不是 AI 和东谈主类的和博弈。这是有 AI 的东谈主,和莫得 AI 的东谈主,差距在被急剧拉大。
Jarred 的法论里藏着三个可挪动的原则:把隐常识翻译为规则、用信息不合称作念反抗审查、树立历程而不是树立代码。这三条原则里的每条,王人不依赖 Bun、不依赖 Zig、不依赖 Anthropic。它们依赖的是个东西:你对你的表情有富饶的度掌捏。
当每个对我方表情了如指掌的 senior engineer 王人不错用访佛式把积贮多年的架构直观造成 AI 使命流时,软件工程的资本结构会变。个东谈主加台 AI 能作念的事情会过个莫得 AI 的五东谈主团队。阿谁用了四年的 53 万行 Zig 代码,11 天就造成了 Rust。下次,可能不仅仅重写。可能是从个代码库自动生成另个针对不同硬件的化版块。
这些问题还莫得细则的谜底。但有件事情照旧细则了。Jarred 说了句话,值得刻在脑子里:
「"Compiler errors are a better feedback loop than a style guide."」
他不仅仅在说 Zig 和 Rust。当反馈闭环从代码审查加分娩事故镌汰到写完就报错,咱们写软件的整个这个词节律王人会更正。而当 AI 能帮你完成这种别的转换时,谁能策划好的反馈闭环,谁就赢。
据 Jarred 我方在 Bun 官博客的败露,Rust 版照旧合入主分支并随新版块发布,Claude Code 也以 Bun 可实施文献的体式分发给了几百万用户。这不是篇 PR 稿——这是个在真确表情里跑了 11 天、通过了百万断言、资历了社区误读和 6 天千里默之后被端出来的、不错被任何东谈主复现的实验。
多属意那些能把隐常识翻译陋习则的东谈主。
他们手里的 AI,和你手里的不样。联系人:何经理相关词条:铝皮保温 隔热条设备 钢绞线厂家玻璃棉 泡沫板橡塑板专用胶
1.本网站以及本平台支持关于《新广告法》实施的“极限词“用语属“违词”的规定,并在网站的各个栏目、产品主图、详情页等描述中规避“违禁词”。
2.本店欢迎所有用户指出有“违禁词”“广告法”出现的地方,并积极配合修改。
3.凡用户访问本网页,均表示默认详情页的描述莆田储罐保温厂家,不支持任何以极限化“违禁词”“广告法”为借口理由投诉违反《新广告法》,以此来变相勒索商家索要赔偿的违法恶意行为。
