這裏記錄每週值得分享的科技內容,週五發佈。
本雜誌 開源 [1] ,歡迎 投稿 [2] 。另有 《誰在招人》 [3] 服務,發佈程序員招聘信息。合作請 郵件聯繫 [4] ( [email protected] [5] )。
封面圖
重慶涪陵某景區架設了世界首座“巨石索橋”,橋面就是一塊塊巨石,一不小心就會踏空。( via [6] )
測試是新的護城河
Next.js [7] 是目前排名第一的 JS 框架。平時遇到的 JS 全棧應用,我估計,一半用它開發。
兩週前,這個框架被一則新聞顛覆了。
一個 Cloudflare 工程師 宣佈 [8] , 他只用一個星期就用 AI 重新實現了 Next.js ,起名爲 vinext [9] 。
事實上,一天就生成產品原型了,後面幾天只是在完善。
“真正動手是2月13日,當天晚上,基本功能已經實現。第二天下午,11個路由器做好了10個。第三天,已經部署到我們的服務器,實現了完整的客戶端水合。
接下來的幾天,主要進行安全加固:修復極端情況,擴展測試套件,提升 API 覆蓋率至 94%。”
這個新的實現,比原版 Next.js 性能更好。
“早期基準測試中,構建速度提升了4倍,客戶端軟件包的體積縮小了57%,生產環境的 Next.js 應用已經直接跑在上面了。”
這個 vinext 的 代碼 [10] 已經放出來了。
我覺得, 這件事對 Next.js 的打擊非常大 。
Next.js 是 Vercel 公司的產品,背後有一個大型開發團隊,每年都是鉅額投入,已經整整做了10年。雖然是開源軟件,但是企業版、雲服務、插件、皮膚都要收費,去年的年收入達到2億美元。
這種看似難以逾越的護城河,在 AI 面前不堪一擊 。一個工程師用了一個星期,就復刻了大團隊十年的工作成果,現有的網頁應用不改一行代碼,放上去就能跑,原版的每個功能都支持。
你知道花了多少錢?Token 費用僅僅爲 1100 美元!
這叫 Vercel 怎麼再向 Next.js 的開發投錢,客戶又怎麼願意再爲某個功能付出高昂的使用費。
推而廣之,所有的商業軟件都受到了重創。 代碼的護城河不存在了,只要投入一小筆金錢,AI 就能復刻出大型軟件。
那麼,爲了保護自己,軟件公司下一步肯定要防止 AI 復刻。
怎麼防呢? 關鍵就是測試用例 。
Cloudflare 工程師這一次能夠復刻成功,主要原因是 Next.js 有完備的文檔、龐大的社區文章、以及完整的測試用例。AI 模擬的每一個 API,只要能夠通過原有的接口測試,就能確認百分百兼容。
如果拿不到測試用例,誰知道代碼行爲是否一致,誰敢放到生產環境運行。
可以想象,爲了防止復刻,大型軟件項目一定會保護自己的測試用例。 測試纔是新的護城河。
世界最流行的數據庫 SQLite [11] ,本身代碼15.6萬行,但是測試用例 9205萬行 [12] ,足足大了590倍!
其中,最核心的測試套件 TH3 [13] 是閉源的,不公開,主要測試航空、醫療等關鍵行業的極端情況和邊緣案例,屬於核心技術資產。正是這些保密用例,才讓 SQLite 難以復刻。
無獨有偶,就在前兩天,另一個開源項目 tldraw [14] 也準備將測試用例閉源。
說實話,保密的測試用例肯定不利於開源項目的發展,但是開發者需要保護自己的利益。在日益強大的 AI 面前,越來越多的軟件可能會選擇這樣做。
AI 復刻的版權問題
AI 復刻軟件還有一個版權問題,也引起了 很大爭議 [15] 。
Next.js 是最寬鬆的 MIT 許可證,所以復刻沒有版權問題。但是,有人復刻了一個叫做 chardet [16] 的項目,就爭議巨大。
chardet 本來採用的許可證,是限制較多的 LGPL,復刻以後改成了 MIT 許可證,引發了原始作者的抗議。
網上的意見也分成了兩派。
支持者說,AI 只復刻了功能和接口,代碼完全不一樣,當然可以更改許可證。
反對者說,GPL 規定了,所有衍生作品都不能更改許可證,AI 復刻就屬於衍生。
更麻煩的是,美國法律規定,AI 生成產物無版權,屬於公共領域。這意味着, AI 復刻的軟件不能設置許可證,設置了無效。
按照這條法律,軟件許可證就意義不大了。管你是什麼許可證,任何人 AI 復刻一下就能規避,AI 實現的版本一律沒有版權。
科技動態
1、 AI 改寫髒話 [17]
遊戲平臺 Roblox 宣佈 [18] ,將用 AI 實時修改玩家的對話,讓其變得更文明。
以前,如果玩家在遊戲裏面罵髒話,系統只會將其過濾,顯示爲
####
,你還是知道他在罵人。
現在,AI 將重新修改整個句子,讓表達變得更禮貌、更文明,你就察覺不到對方在罵人。
雖然這樣未免有點虛假,但確實有必要。網絡論壇也應該跟進,不要讓人身攻擊毀掉交流氛圍。
2、 飛機的激光上網 [19]
歐洲航天局成功進行了飛機的“激光上網”實驗,通過激光將一架飛機與一顆衛星連接,實現了高速通信。
飛機上網現在都通過無線電波,比如星鏈就通過無線電,讓飛機連接衛星。本次實驗則是通過激光連接衛星。
上圖就是安裝在飛機舷窗上的激光終端。
激光通信的優點是帶寬大,不受無線頻譜的限制,這次實驗的上網速度達到了 2.6Gbps,是星鏈的8到10倍。
缺點是激光與衛星之間必須保持直線,不能有云層和大氣的障礙物。所以採用這種方式,大概只有飛到高空時才能上網。
3、 Grammarly 的專家意見 [20]
Grammarly 是一個寫作服務,提供一個收費功能“專家意見”,讓專家點評你的文章。
一個國外用戶使用該功能時,震驚地發現,點評專家裏面有他的前老闆(下圖),但是他知道老闆已經去世了。
原來這不是真人點評,而是 AI 爲每個專家建了一個分身,用他們各自的文章進行訓練,然後讓分身點評你的文章。
這引起了爭議,我們是否有權搭建別人的“數字分身”,然後冠以原始人物的名義(比如“孔子分身”或者“愛因斯坦分身”)?
4、 太陽能郵筒 [21]
網絡通信普及以後,傳統的郵筒怎麼辦?
英國皇家郵政想出一個辦法,將英國各地3500個郵筒,變爲“太陽能郵筒”。
郵筒頂部加裝了太陽能光伏片,功能也從寄信,變成了收寄小包裹。
這樣既保存了傳統的紅色郵筒,成爲街道的景觀,又爲人們郵寄包裹提供了方便。
文章
1、 GitHub Issue 標題的注入攻擊 [22] (英文)
這可能是第一起 AI 模型注入的真實攻擊。Cline 項目使用 AI 對 GitHub Issue 進行分類,有人就在標題插入惡意提示詞,從而成功拿到 npm 令牌,發佈了一個惡意版本。本文告訴你這是怎麼做到的。
2、 重新評估 AGENTS.md [23] (英文)
最近的一項研究提出,跟推薦做法相反,AGENTS.md 文件對 AI 編碼不是促進,而是阻礙。
它只是讓模型“思考”得更多(成本上升),生成結果卻沒有更好(性能下降)。
3、 Temporal API 的九年曆程 [24] (英文)
本週,Temporal API 正式通過了第四階段。這意味着,它進入了 ES2026 標準,成爲了 JavaScript 語法的一部分。本文是這個標準的起草者對九年推進歷程的回顧。
4、 AI 的胡說測試 [25] (英文)
國外有一個 BuillshitBench [26] ,專門問 AI 一些胡說八道的問題,看 AI 能不能分辨這是胡說,還是一本正經地回答。
5、 原生 CSS 就足夠了 [27] (英文)
本文展示了 37Signals 公司的 CSS 代碼,表明不使用任何框架(比如 Tailwind)和構建工具(比如 Sass),只用原生 CSS 代碼完全可以。
6、 糞便物理學 [28] (英文)
一篇很另類的科普文章,解釋爲什麼動物不管大小,排便時間都在5~19秒之間,平均12秒。
工具
1、 KULA [29]
Linux 服務器的監控工具,只有一個二進制文件。
2、 AnsiSaver [30]
mac 電腦的屏保程序,用彩色的 Ansi 字符畫作爲屏保圖案。
3、 upiano [31]
在命令行下模擬鋼琴彈奏。
4、 WSL Distro Manager [32]
一個開源 Windows 應用,通過圖形界面管理 Windows Subsystem for Linux(WSL)發行版。
5、 Mole [33]
開源的 Mac 電腦清理和優化工具。
6、 PipeGate [34]
一個將內網服務映射到外網的隧道工具,特點是比較簡單,就是幾個 Python 腳本,並且可以設置 UUID 客戶端認證。
7、 HookListener [35]
一個管理、測試 Webhook 的在線工具,個人可以免費使用。
8、 Sentinel [36]
將安卓手機轉化爲網絡攝像頭,實現實時監控和圖像採集。( @suzuran0 [37] 投稿)
9、 Flux Monitor [38]
Mac 電腦的系統監控、管理面板。( @chentao1006 [39] 投稿)
AI 相關
1、 Agentic Metric [40]
一個 Python 命令行工具,監控本地各種 coding agent(比如 Claude Code、Codex、OpenCode)的使用量。( @MrQianjinsi [41] 投稿)
2、 cc-connect [42]
一個開源的連接器,將各種 AI 編程工具與手機聊天軟件相連。( @chenhg5 [43] 投稿)
3、 Page Agent [44]
只要在網頁插入這個 JS 庫,就可以使用自然語言操作頁面,比如“點擊導航欄的文檔鏈接,總結其內容”。
4、 Agent Safehouse [45]
一個 macOS 沙箱工具,用來在沙箱裏運行 AI 編程工具。
5、 Repo Tokens [46]
一個 GitHub Action,爲你的倉庫添加一個圖形標籤(上圖),顯示該倉庫相當於多少 Token,用來大模型的計算量。
資源
1、 世界監控 [47] (World Monitor)
世界局勢的一個實時看板,把各種消息源都放在一個網頁裏。
2、 煉油廠探索 [48]
一個動畫互動網站,展示煉油廠怎樣將石油變成汽柴油。
3、 Mechanical Pencil [49]
彈簧筆、打火機等生活小物品的機械裝置動畫。
圖片
1、 密碼的替代方法 [50]
一位程序員發明了一種新的密碼方法,你覺得可行嗎?
系統向用戶展示一副撲克牌,讓其從52張牌中依次挑出5張,作爲密碼。
下次登錄時,用戶必須按同樣順序挑出同樣的5張牌。
文摘
1、 複雜社會的崩潰 [51]
我們都知道,一個軟件的複雜度不斷上升,超過某個極限後,就會難以維護,最後往往被放棄。
美國歷史學家約瑟夫·坦特(Joseph Tainter)認爲,人類社會也是如此。如果社會的複雜度超過極限,這個社會最終也會崩潰。
1988年,他出版了一本名爲《複雜社會的崩潰》的書,描述了羅馬人、瑪雅人和查科人等偉大文明的興衰,試圖回答幾個世紀以來一直困擾着思想家的一個問題: 爲什麼強大的社會會崩潰?
他認爲,原因是這些社會有一個敵人——複雜性。
隨着文明的發展,社會增加了越來越多的複雜性:更多的等級制度、更多的官僚機構、更深層次的社會結構。
一開始,新的等級、官僚、組織都是有用的,比如可以增加經濟產出、稅收等。但到了某個時刻,收益遞減規律開始出現,每增加一點複雜度帶來的回報越來越少,直至變成零甚至負數。
(1)法律條文和官僚越多,政府開銷也就隨之上升,長期很可能令社會無法負擔。
(2)複雜度變大,會增加社會的不平等,因爲能理解所有規則的人就越少,你就越離不開律師。懂規則的人會比其他人佔優勢。
(3)規則越多,維護和執行這些規則的機構也就越多,不利於社會提高效率。
(4)複雜性最終導致社會各階層的差距變大,對立也隨之而來。
以上因素的共同作用,導致歷史上很多強大的社會最終崩潰。
言論
1、
2021年,我感覺做一名優秀的軟件工程師棒極了。軟件行業蓬勃發展,機會很多,我熱愛這份工作,覺得可以永遠做下去。
2026年,我已經不確定軟件行業十年後會怎樣,即使還存在,必定與現在極不相同。我也許能找到出路,也許不得不離開這個行業。無論如何,我熱愛的軟件工作即將消失。
-- 《我不知道十年後我的工作是否還存在》 [52]
2、
與強大的 AI 對抗會是什麼感覺?
你會感覺自己莫名其妙地弱了不少,AI 做的每件事都超出你的預期。
這就好像你和一位實力強勁的玩家玩一款隨機性很強的遊戲,你會感覺這位高手總是運氣爆棚。
-- probablydance.com [53]
3、
閱讀商戰書籍是浪費時間。它們將簡單的故事變成通用的建議,將偶然的成功轉化爲普遍的策略,並用激勵人心的口號取代複雜的市場。
這些書的成功並不是因爲內容正確,而是因爲易於閱讀並且讓讀者感覺良好。
-- 《閱讀商戰書籍是浪費時間》 [54]
4、
我想讓 AI 告訴我怎麼使用一種全新的、AI 也不會用的工具,就會提示 AI “執行 xxx-tool --help 來了解該工具”(假定工具名字是 xxx-tool),然後 AI 就學會用了。
-- Simon Willison [55] ,著名開發者
5、
時間是唯一不可再生的資源。AI 大模型是目前我所知的最便宜的賺取額外時間的方式。
-- 《不要太看重 AI 大模型的訂閱費》 [56]
往年回顧
低代碼編程,恐怕不會成功 [57] ( #341 )
中國的增長動力在內陸 [59] ( #241 )
一個程序員的財務獨立之路 [60] ( #191 )
(完)
References
[1]
開源:
https://github.com/ruanyf/weekly
[2]
投稿:
https://github.com/ruanyf/weekly/issues
[3]
《誰在招人》:
https://github.com/ruanyf/weekly/issues/9088
[4]
郵件聯繫:
mailto:[email protected]
[5]
[email protected]:
mailto:[email protected]
[6]
via:
https://www.cbg.cn/a/77561/20260214/7b37135efeb74f0fbbaf272a9b7f6ae0.html
[7]
Next.js:
https://nextjs.org
[8]
宣佈:
https://blog.cloudflare.com/vinext/
[9]
vinext:
https://vinext.io/
[10]
代碼:
https://github.com/cloudflare/vinext
[11]
SQLite:
https://sqlite.org
[12]
9205萬行:
https://sqlite.org/testing.html
[13]
TH3:
https://sqlite.org/th3.html
[14]
tldraw:
https://github.com/tldraw/tldraw/issues/8082
[15]
很大爭議:
https://tuananh.net/2026/03/05/relicensing-with-ai-assisted-rewrite/
[16]
chardet:
https://github.com/chardet/chardet
[17]
AI 改寫髒話:
https://decrypt.co/360183/roblox-using-ai-rewrite-chat-swears-slurs-real-time
[18]
宣佈:
https://ir.roblox.com/news/news-details/2026/Roblox-Launches-Real-Time-Chat-Rephrasing-to-Maintain-Civility-and-Gameplay-Flow/default.aspx
[19]
飛機的激光上網:
https://www.esa.int/Applications/Connectivity_and_Secure_Communications/World-first_gigabit-per-second_laser_link_between_aircraft_and_geostationary_satellite
[20]
Grammarly 的專家意見:
https://www.theverge.com/ai-artificial-intelligence/890921/grammarly-ai-expert-reviews
[21]
太陽能郵筒:
https://www.bbc.com/news/articles/cgln72rgrero
[22]
GitHub Issue 標題的注入攻擊:
https://grith.ai/blog/clinejection-when-your-ai-tool-installs-another
[23]
重新評估 AGENTS.md:
https://www.infoq.com/news/2026/03/agents-context-file-value-review/
[24]
Temporal API 的九年曆程:
https://bloomberg.github.io/js-blog/post/temporal/
[25]
AI 的胡說測試:
https://decrypt.co/360596/benchmark-test-measures-ai-bullshit-most-models-fail
[26]
BuillshitBench:
https://petergpt.github.io/bullshit-benchmark/viewer/index.v2.html
[27]
原生 CSS 就足夠了:
https://www.zolkos.com/2025/12/03/vanilla-css-is-all-you-need
[28]
糞便物理學:
https://theconversation.com/physics-of-poo-why-it-takes-you-and-an-elephant-the-same-amount-of-time-76696
[29]
KULA:
https://github.com/c0m4r/kula
[30]
AnsiSaver:
https://github.com/lardissone/ansi-saver
[31]
upiano:
https://github.com/eliasdorneles/upiano
[32]
WSL Distro Manager:
https://github.com/bostrot/wsl2-distro-manager
[33]
Mole:
https://github.com/tw93/Mole
[34]
PipeGate:
https://github.com/janbjorge/pipegate
[35]
HookListener:
https://www.hooklistener.com
[36]
Sentinel:
https://github.com/suzuran0y/CCTV-Smartphone-AI-Monitoring
[37]
@suzuran0:
https://github.com/ruanyf/weekly/issues/9201
[38]
Flux Monitor:
https://github.com/chentao1006/FluxMonitor
[39]
@chentao1006:
https://github.com/ruanyf/weekly/issues/9207
[40]
Agentic Metric:
https://github.com/MrQianjinsi/agentic-metric
[41]
@MrQianjinsi:
https://github.com/ruanyf/weekly/issues/9165
[42]
cc-connect:
https://github.com/chenhg5/cc-connect
[43]
@chenhg5:
https://github.com/ruanyf/weekly/issues/9202
[44]
Page Agent:
https://github.com/alibaba/page-agent
[45]
Agent Safehouse:
https://github.com/eugene1g/agent-safehouse
[46]
Repo Tokens:
https://github.com/qwibitai/nanoclaw/tree/main/repo-tokens
[47]
世界監控:
https://www.worldmonitor.app
[48]
煉油廠探索:
https://fuelingcuriosity.com/game.html
[49]
Mechanical Pencil:
https://mechanical-pencil.com
[50]
密碼的替代方法:
https://tesseral.com/blog/i-designed-some-more-user-friendly-methods-for-multi-factor-authentication
[51]
複雜社會的崩潰:
https://news.ycombinator.com/item?id=31670526
[52]
《我不知道十年後我的工作是否還存在》:
https://www.seangoedecke.com/will-my-job-still-exist/
[53]
probablydance.com:
https://probablydance.com/2026/03/07/im-getting-a-whiff-of-iain-banks-culture/
[54]
《閱讀商戰書籍是浪費時間》:
https://antemedian.substack.com/p/why-reading-business-books-is-a-waste
[55]
Simon Willison:
https://simonwillison.net/2026/Mar/9/not-so-boring/
[56]
《不要太看重 AI 大模型的訂閱費》:
https://steipete.me/posts/2025/stop-overthinking-ai-subscriptions
[57]
低代碼編程,恐怕不會成功:
https://www.ruanyifeng.com/blog/2025/03/weekly-issue-341.html
[58]
AI 沒有護城河:
http://www.ruanyifeng.com/blog/2024/03/weekly-issue-291.html
[59]
中國的增長動力在內陸:
http://www.ruanyifeng.com/blog/2023/02/weekly-issue-241.html
[60]
一個程序員的財務獨立之路:
http://www.ruanyifeng.com/blog/2022/01/weekly-issue-191.html