<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RTL on Codexer</title><link>https://codexer.com/tags/rtl/</link><description>Recent content in RTL on Codexer</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 21 Aug 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://codexer.com/tags/rtl/index.xml" rel="self" type="application/rss+xml"/><item><title>五句话的 Prompt，清掉五年技术债：Asana 用 Codex 迁移 Enzyme 的启示</title><link>https://codexer.com/posts/2026-08-21-asana-codex-enzyme-migration/</link><pubDate>Fri, 21 Aug 2026 09:00:00 +0800</pubDate><guid>https://codexer.com/posts/2026-08-21-asana-codex-enzyme-migration/</guid><description>&lt;p&gt;想象这样一个场景：你的团队有一个迁移项目，已经断断续续推进了三年，各种排期里都挂着它，但每次算下来，距离真正做完还有五年。团队上上下下都知道这事该干，也都默认它只能慢慢磨。突然有一天，有人提了一个「不讲道理」的目标：能不能一周之内把它干完。&lt;/p&gt;
&lt;p&gt;两周后，这个项目真的结束了。代码库里的旧测试框架被彻底清空，而整个过程的模型和基础设施成本加起来，大概一万两千美元。&lt;/p&gt;
&lt;p&gt;这不是我编的故事，而是 Asana 工程团队最近公开的一个真实案例。他们用 OpenAI Codex，把一份预计还要五年的前端测试迁移工作，压缩到了两周。&lt;/p&gt;
&lt;h2 id="五年都磨不完的-enzyme"&gt;五年都磨不完的 Enzyme&lt;/h2&gt;
&lt;p&gt;先说说这个「五年」是怎么来的。&lt;/p&gt;
&lt;p&gt;Enzyme 是 React 生态里一个老牌的测试库，曾经是主流。但它后来失去了社区维护，和较新版本的 React 兼容性越来越差，而且它鼓励开发者写那种和实现细节强耦合的测试，而不是关注用户真正看到和用到的行为。&lt;/p&gt;
&lt;p&gt;Asana 从 2022 年就开始计划，把前端测试从 Enzyme 迁到 React Testing Library（RTL）。RTL 的哲学正好反过来：测行为，不测内部实现。这个迁移一直在推进，好几个多人年的项目都押在上面，各个产品团队也在各自负责的角落慢慢啃。&lt;/p&gt;
&lt;p&gt;问题在于，按当时的推进速度，剩下那部分大概还要五年。这类技术债有个共同点：它对工程有意义，但从来不是业务上的头等大事，所以只能一直排在别的需求后面，年复一年地拖。&lt;/p&gt;
&lt;p&gt;于是团队定了一个故意不合理的目标：一周之内把整个迁移做完。&lt;/p&gt;
&lt;p&gt;他们几乎做到了。实际花了大约一周半的工程时间，跨了两个自然周，Enzyme 从代码库里彻底消失。&lt;/p&gt;
&lt;h2 id="五句话的-prompt四个并行-agent"&gt;五句话的 Prompt，四个并行 agent&lt;/h2&gt;
&lt;p&gt;真正让人意外的是，方法简单得近乎「朴素」。&lt;/p&gt;
&lt;p&gt;他们用的是 OpenAI Codex，配 frontier 模型、超高推理档位，同时最多跑四个 agent，每个 agent 指向不同的目录。机器不睡眠，agent 白天晚上连轴转，工程师每天早上和晚上各检查一次进度，审阅并合并 PR。&lt;/p&gt;
&lt;p&gt;而驱动这一切的 prompt，只有五句话：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;/goal We want to migrate the repo from Enzyme tests to React Testing Library style tests. Follow existing norms and best practices in the codebase. Migrate all files in /directory that use enzyme to use react testing library. Test your changes with [test command]. Generally bias for migrating easy-to-convert files first.&lt;/p&gt;</description></item></channel></rss>