跳至主要內容
YIP NEWS
YIP NEWS

9月21日

一條連線煮了好幾小時,而你終於能看見鍋裡在滾什麼

生活爐 編輯專欄

Flutter GSoC 2026 五個入選提案於 2026 年 9 月 17 日公布,我們把開發工具補上的那些邊界缺口,翻譯成廚房裡鍋邊、竈邊與餐桌之間的滋味故事。

刊出 (台北時間) 閱讀約 5 分鐘

2026 年 9 月 17 日,今年 Google Summer of Code 的 Flutter 入選名單出爐,官方收到將近一百份提案,最後重點介紹了五個項目:WebSocket 網路除錯、C++ FFI、IntelliJ 外掛通訊、Android 加密後端,以及 Dart FFI 的原生記憶體除錯。這新聞離餐桌很遠,但你先別急著滑走。這五個項目表面分散,其實都在補同一種東西:Dart 與外面世界交界處的縫。而廚房裡,剛好也全是縫。

廚房裡的邊界,比你想的多

你在廚房做事的時候,其實一直跨越各種邊界。冰箱到流理臺,是食材從生到備的界;砧板到熱鍋,是備料到烹調的界;鍋到盤、盤到桌,又是兩道界。界本身沒問題,問題是界上的縫沒人顧:油從鍋邊漏出來、水從瀝水籃底下滴一地、蒜味從砧板縫裡洗不掉。

這次 Flutter 補的縫也很類似。WebSocket 是應用跟伺服器之間的界,FFIgen 是 Dart 跟 C、C++ 之間的界,IntelliJ 外掛接的是開發環境跟工具後端之間的界,Android 加密後端管的則是 Flutter 跟系統能力之間的界。每一條縫都不起眼,可菜要出得好,靠的往往就是這些地方不漏。

一鍋長時間小火的湯,終於有了透明的鍋蓋

先講最有感的一個。以前的 DevTools 網路面板,是照著 HTTP 的邏輯設計的:一個請求配一個回應,像點一份便當,付錢、拿餐,結束。但 WebSocket 不一樣。它是開一條連線,然後持續雙向傳資料,幾分鐘到幾個小時都有可能,像一鍋小火慢燉的湯,你蓋上鍋蓋走了,它還在滾。

以前你想知道鍋裡的狀況,只能在業務程式碼裡自己印 log,等於要確認湯有沒有滾,得自己拿湯匙一直掀蓋。這次把 WebSocket 觀測做進 dart:io,沿用原本 HTTP profiling 的基礎建設,連線、傳送、接收、Ping、Pong、關閉、錯誤這些事件全部進到同一條採集鏈路,再用 connection ID 長期維護每條連線的狀態。

換成餐桌上的話:現在有一個透明鍋蓋了。Network 面板裡 HTTP 跟 WebSocket 出現在同一張列表,WebSocket 會保持 open 或 Pending 狀態。點開之後有 Overview,看連線狀態、收發位元組數、frame 總數、開始與結束時間;還有 Frames 檢視,照時間序列出每個事件的方向、opcode 與 payload 大小。誰先掛斷、哪個 frame 出錯、到底還有沒有在收訊息,一眼就看得見。做即時通訊、行情、物聯網控制、AI 串流的人,等於少守了一整晚的爐火。

而說到把原本互不相通的東西接進同一套模型,這跟先前那鍋越養越厚的老滷有點像:好的基礎建設捨不得另起爐竈,能複用的風味就繼續複用。

記憶體除錯:從只看得到地址,到嚐得到味道

另一個補上的盲區是原生記憶體。以前在 Dart 裡看一個 Pointer,基本上只看得到一個地址,像你收到一箱標了編號的貨,不知道裡面裝的是乾香菇還是新鮮蚵仔。這次的專案把安全讀取、typed value、raw bytes 的主體都合進去了,你終於能打開箱子聞一下。

寫過 FFI 的人都知道那種感覺:跨過 Dart 與 C 的邊界,東西一壞就壞在最難看到的地方,像湯的問題出在你根本沒開過的那個櫃子裡。FFIgen 這次也把 C++ 的類別、繼承、所有權等基礎能力合入,雖然還是實驗性質,但至少手寫 glue code 的量能少一大截。手寫膠水程式碼這件事,很像手工給一百顆水餃捏邊:不是不行,就是捏到第四十顆的時候你會開始懷疑人生。

收尾前的試味,跟還沒上桌的菜

其他幾項就短講。IntelliJ 外掛把老舊的 Weberknecht 換成 JDK 的 WebSocket,遷移完成,等於把一把用了太多年、握起來卡卡的老剪刀換掉,這跟薔薇要修剪才開得好看是同一個道理,工具鈍了,什麼都慢。Android 的 webcrypto 後端把大部分演算法做完,但生產環境的整合還有後續,像一道菜已經調好味、還沒正式上桌。gRPC 的觀測也留作後續。

GSoC 的節奏本來就是這樣:一個夏天,一羣學生,把鍋邊幾條漏氣的縫補起來。補完不等於完工,實驗性的 C++ 支援要燉,生產整合要燉,很多東西都要再燉一輪。

回到你的爐臺

這則新聞對一般人的意義,其實不在 Flutter。而在一個更樸素的事實:任何系統的壞,常常壞在交界處。菜的味道壞在冰箱跟鍋之間那段解凍的時間,壞在砧板生熟不分的縫,壞在上菜前那三分鐘的等待。工具愈能看到交界處,你就愈不用靠猜。

所以今晚做菜的時候,不妨留意一下你自己的縫:瀝水的時間、鍋鏟換手的瞬間、關火到起鍋那段空檔。開發者等了幾年,才終於看得見一條連線裡每個 frame 的長相;而你只要站在爐邊,就能看見一鍋湯從大滾到小滾的每個階段。這大概是廚房比 DevTools 幸福的地方,你的觀測工具,從來就是你的眼睛、鼻子,和那雙記得溫度的手。

這道菜的主題

標籤

#開發者的深夜廚房#爐火與除錯#生活裡的邊界