以下内容转载自:阮一峰 科技爱好者周刊(第 388 期) – 测试是新的护城河
Next.js 是目前排名第一的 JS 框架。平时遇到的 JS 全栈应用,我估计,一半用它开发。
两周前,这个框架被一则新闻颠覆了。
一个 Cloudflare 工程师宣布,他只用一个星期就用 AI 重新实现了 Next.js,起名为 vinext。
事实上,一天就生成产品原型了,后面几天只是在完善。
“真正动手是2月13日,当天晚上,基本功能已经实现。第二天下午,11个路由器做好了10个。第三天,已经部署到我们的服务器,实现了完整的客户端水合。
接下来的几天,主要进行安全加固:修复极端情况,扩展测试套件,提升 API 覆盖率至 94%。”
这个新的实现,比原版 Next.js 性能更好。
“早期基准测试中,构建速度提升了4倍,客户端软件包的体积缩小了57%,生产环境的 Next.js 应用已经直接跑在上面了。”
这个 vinext 的代码已经放出来了。
我觉得,这件事对 Next.js 的打击非常大。
Next.js 是 Vercel 公司的产品,背后有一个大型开发团队,每年都是巨额投入,已经整整做了10年。虽然是开源软件,但是企业版、云服务、插件、皮肤都要收费,去年的年收入达到2亿美元。
这种看似难以逾越的护城河,在 AI 面前不堪一击。一个工程师用了一个星期,就复刻了大团队十年的工作成果,现有的网页应用不改一行代码,放上去就能跑,原版的每个功能都支持。
你知道花了多少钱?Token 费用仅仅为 1100 美元!
这叫 Vercel 怎么再向 Next.js 的开发投钱,客户又怎么愿意再为某个功能付出高昂的使用费。
推而广之,所有的商业软件都受到了重创。代码的护城河不存在了,只要投入一小笔金钱,AI 就能复刻出大型软件。
那么,为了保护自己,软件公司下一步肯定要防止 AI 复刻。
怎么防呢?关键就是测试用例。
Cloudflare 工程师这一次能够复刻成功,主要原因是 Next.js 有完备的文档、庞大的社区文章、以及完整的测试用例。AI 模拟的每一个 API,只要能够通过原有的接口测试,就能确认百分百兼容。
如果拿不到测试用例,谁知道代码行为是否一致,谁敢放到生产环境运行。
可以想象,为了防止复刻,大型软件项目一定会保护自己的测试用例。测试才是新的护城河。
世界最流行的数据库 SQLite,本身代码15.6万行,但是测试用例9205万行,足足大了590倍!
其中,最核心的测试套件 TH3 是闭源的,不公开,主要测试航空、医疗等关键行业的极端情况和边缘案例,属于核心技术资产。正是这些保密用例,才让 SQLite 难以复刻。
无独有偶,就在前两天,另一个开源项目 tldraw 也准备将测试用例闭源。
说实话,保密的测试用例肯定不利于开源项目的发展,但是开发者需要保护自己的利益。在日益强大的 AI 面前,越来越多的软件可能会选择这样做。
如本文对您有用,捐赠和留言 将是对我最好的支持~
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。
