閱界資訊

第388期:測試是新的護城河

閱閱界編輯部2閱讀3分鐘

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 面前,越來越多的軟件可能會選擇這樣做。

來源|阮一峯科技愛好者週刊第 388 期,

每週精選周刊头条

評論(0)

暫無評論,來搶第一條。