跳至主要內容

從評審會上那組 800ms,到程式碼裡那行 c.json(result):前端轉全端的設計語言

一位前端主管轉型全端的十八個月紀錄,從名詞清單的減法與程式碼排印的趨同,讀 Serverless 生態如何把後端重新設計成前端讀得懂的介面。

設計觀察 ·
從評審會上那組 800ms,到程式碼裡那行 c.json(result):前端轉全端的設計語言

技術評審會上,某個介面的回應時間寫著 800ms。後端工程師說這個做不了,坐在對面的前端主管無從判斷,這組數字究竟是系統的天花板,還是一段沒寫好的 SQL。十月初,掘金上一篇名為《做全端是前端騙局還是出路》的長文重提這個場景,作者 ErpanOmer 記下自己 2025 年初從前端團隊主管轉型全端的十八個月。

開發者社羣把這篇文章當職涯指南在讀,設計的讀法卻在另一層:當一個前端的畫布邊界從瀏覽器推向資料庫,沿途的介面被誰重新設計過,變薄了什麼,又收走了什麼。

一個讀不到的欄位

前端的專業領域,在回應抵達瀏覽器的那一刻結束。JSON 進來,畫面渲染,這中間發生的事,前端看得到結果,看不到過程。800ms 因此是個有方向性的欄位:後端看得到它的成因,前端只看得到它的數值。

組織的分工通常把這種不對稱吸收掉,前端負責體驗,後端負責資料,兩邊靠 API 文件對接。作者的選擇是拆牆,他要能判斷延遲的來源,要能核對一句「做不了」的可信度。十八個月後,那組 800ms 對他從別人給的答案,變成自己查得到的欄位。

引述一位前端主管的自述:他無法判斷某個介面 800ms 的回應時間,究竟是技術上限還是查詢語法沒寫好

名詞清單的減法

文章把多數人不敢碰全端的原因,歸給一份太長的名詞清單:Linux 維運、Docker、Kubernetes、Nginx、MySQL 調校、Redis 叢集、訊息佇列、微服務架構。光是把名詞列完,就足以讓人直接放棄。作者提醒讀者,這是 2016 年的全端定義。

十年後的清單短得多。Linux 維運被 Serverless 接走;Docker 連存在都不必,因為 Cloudflare Workers 跑在 V8 Isolates 上,沒有容器這回事;Nginx 也免了,邊緣網路自帶全球路由。扣掉被接走的部分,剩下需要從零學習的核心知識,作者估計八到十週的密集投入就能跨過門檻,足夠獨立完成一個產品從 UI 到資料庫的開發。

統計圖卡呈現作者估計八到十週的密集學習,就足以從純前端跨進全端開發的門檻

從產品設計的角度看,這份縮短的清單很眼熟。消費性電子把螺絲收進一體成型的機殼,操作面就乾淨了;Serverless 把維運收進託管服務,開發者面對的介面就薄了。名詞清單的長度,是介面厚度的另一種寫法。2016 年的全端要求你讀懂每一層的內部構造,2026 年的全端把大部分構造封進牆後,只露出需要操作的表面。代價也寫在同一份設計裡:被封起來的層次看不見,也修不了。減法設計向來是這種交易,換到乾淨的表面,交出內部的存取權。

程式碼的排印

文章中段貼了一段範例程式碼,Cloudflare Worker 為底,Hono 做路由,Drizzle 接 D1 資料庫。從排印上看,這段後端程式碼與前端的事件處理器幾乎是同一種文法。import 開頭,型別宣告在中間,路由是箭頭函式,資料以一行 c.json(result) 回傳。縮排與鏈式呼叫的斷行,都是寫 React 的人每天在看的版面。

範例裡的兩條路由也值得看。公開的讀取介面掛在 app.get 上,需要鑑權的寫入介面多了一個 authMiddleware 參數,權限的邊界直接寫在參數列裡,一眼讀得出哪條路要鑰匙。把規則放在版面上、而非藏在文件裡,這種寫法本身就是一種介面設計。

關鍵的決策藏在更深的引擎層。Cloudflare Workers 的執行環境是 V8 Isolates,而 V8 正是 Chrome 瀏覽器執行 JavaScript 的那顆引擎本體。前端工程師換到這個後端平臺,等於把母語環境整組搬到伺服器上。Hono 的路由語法貼著前端框架的書寫習慣,Drizzle 把 SQL 包成型別安全的函式呼叫,D1 則把 SQLite 搬到邊緣節點。零件湊起來,後端在版面上已經長得很像前端。

學習曲線下降的原因就在這裡。該學的知識沒有消失,資料模型怎麼設計、查詢怎麼寫才有效率,這些都還在;改變的是包裝方式。後端被重新排版成前端讀得懂的文法,門檻的降低是介面設計的成果。這個方向並不陌生,先前讀過的Strata 引擎把 1250 億參數模型壓進 12GB 顯示記憶體,走的是同一條路:底層規格不動,接觸面的親民程度決定誰能上手。

清單列出作者目前的全端主力組合:Cloudflare Workers、D1 資料庫、Hono 框架與 Drizzle ORM

接縫與帳單

選型沒有一步到位。文章裡的技術棧經過幾輪迭代,起手式是 Next.js 全家桶:Server Components 寫服務端邏輯,Server Actions 處理表單,Prisma 接 PostgreSQL。這個組合對前端最友善,幾乎不需要切換心智模型。問題出在細節,Prisma 在 Serverless 環境的冷啟動很慢,卡在連線池初始化;Next.js 的建置產物太大,部署到 Vercel 的 Edge Runtime 時頻繁超過體積上限;流量上來之後,Vercel 帳單的成長速度被作者形容為讓人心跳加速。

這些問題在設計上有共同的名字:接縫。抽象化把複雜度包起來,包不攏的地方就露縫。冷啟動是包裝沒蓋好的縫,帳單則是每月寄達一次的價格標籤,提醒你先前享受的託管體驗是有計價的。

於是有了換軌。Cloudflare Workers、D1 與 Hono 成為主力,作者稱之為 2026 年前端轉全端成本效益最高的組合。過程很像產品改版,先求能上路,再修會漏水的接縫。這種在新舊兩套系統之間搬家的適應期,我們在電動車車主的一年之癢裡也讀過:介面文法換了一套,焦慮就從油錶指針搬到電量百分比,做的仍是同一份適應作業。

騙局或出路的介面答案

回到文章標題的問句,做全端是前端的騙局還是出路。這個問法把重心放在身分上,好像領了全端的名片就換了一種人。從設計的角度看,事情樸素得多:全端是一種可讀範圍的擴張。2016 年的版本,靠把整份名詞清單搬上自己的書桌;2026 年的版本,靠後端的介面被重新設計到前端讀得懂。

文章沒有給出普世答案,它給的是一份可核對的成本清單,加上兩代技術棧的實測紀錄。十八個月後最實際的回報,或許就寫在開頭那個場景裡:再聽到「這個做不了」的時候,那組 800ms 已經是一個可以翻開來核對的欄位。