程式忍者PGNinja

GitHub Blog

GitHub 花三年遷移 CSS 架構讓網站更快

· GitHub 耗時三年將 Primer 設計系統從 CSS-in-JS 遷移至 CSS Modules,伺服器端渲染速度提升 55%。

GitHub 網站原本使用建立在 CSS-in-JS 之上的 Primer 設計系統,隨著元件數量增加,這種寫法需要在瀏覽器端動態產生樣式,導致伺服器端渲染效能持續下滑,樣式的維護與更新也愈來愈困難。GitHub 工程團隊因此從 2023 年展開一項為期三年的架構遷移計畫,把大量樣式改用瀏覽器原生支援的 CSS 直接撰寫,從根本解決效能瓶頸。

整個工程分三階段進行:先導入 CSS Modules,讓樣式檔案與 JavaScript 原始碼放在一起撰寫,用功能開關讓新舊寫法並存、經視覺迴歸測試驗證後才全面上線;接著建立過渡用的函式庫,並借助 GitHub Copilot 編碼代理,讓兩人團隊三週內清掉六千多個內聯樣式屬性 sx;最後才拿掉 styled-components 依賴,改用原生 CSS 管理主題。

這次遷移最終帶來實際效能提升:伺服器端渲染速度加快 55%,元件初始化加快 25%,部分頁面的伺服器端渲染時間更改善將近 22%。社群討論的重點在於 GitHub 選擇「漸進式遷移加功能開關」的策略,讓一項橫跨三年、影響全站樣式系統的大工程,能在不中斷服務的情況下逐步完成,也示範了如何借助 AI 編碼代理加速大量重複性的程式碼改寫工作。

這篇文章比較偏工程團隊內部的架構重構,對剛開始學程式的孩子來說可能有點遠,但背後的態度值得參考:遇到龐大的系統性問題時,不需要一次全部重寫,而是可以拆成小步驟、邊做邊測試、確認沒問題後再繼續下一步,這種「漸進式改善」的精神,也很適合套用在孩子練習寫程式與逐步除錯優化作品的過程中。

開發工具軟體工程前端

其他新聞