選擇無聊的技術 (boring technology)
2023年9月10日
選擇無聊的技術 (boring technology) 是一個資深工程師應該具備的思維。在這篇文章,我們將透過 ExplainThis 網站改版的例子,來聊聊什麼是選擇無聊的技術? 以及為什麼要這麼做?
ExplainThis 網站改版的技術選擇依據
在 2023 年的今天,如果要選擇自行架設一個以內容為主的自媒體網站,前端框架的選擇,要不就選主打「零 JavaScript」的 Astro,要不就選由 Vite 為基底提供極佳開發體驗與性能的 VitePress。假如想用 RSC 寫,也應該選 Next 13。怎麼會還有人用 Next 12 這種老古董呢?
我們用 Next 12 是有原因的,因為在最開始寫 ExplainThis 網站時,我們在樣式設計上大量依賴以 Next 來寫的 TailwindUI,而當時的 Next 還是在 12 版而已。那你可能會問,既然網站要改版,怎麼不乾脆也順便升 Next 13,或是用 Astro 改寫?
最主要的原因是,搬遷成本遠大於能獲得的價值。以我們最多流量的桌機來說,用 Next 12 的 Lighthouse 跑分已經足夠好了 (見下圖),起碼在性能、最佳實踐,以及 SEO 都是滿分,花大量時間把做遷移,對我們來說實務上價值沒那麼高。
不論升 Next 13 或搬遷到 Astro,都要額外多花好幾週,多花這些時間讓網站快 0.1 秒,不如把時間花在產出更多有價值的內容上。這裡特別備註,假如你的網站本來就跑不快,那麼提升性能很必要,我們是因為原本已經足夠好,所以邊際效益不高。
選擇無聊的技術
前 Google 的傑出工程師 (Distinguished Engineer) Kelsey Hightower 曾提過「盡可能選擇無聊的架構越久越好,把主要時間、資源花在打造讓客戶願意買單的東西 Stick to boring architecture for as long as possible, and spend the majority of your time, and resources, building something your customers are willing to pay for」。
現任 Google Chrome 的 DX 負責人 Addy Osmani 針對這句話的詮釋是「有策略性的演進 strategic progression」,意即在選擇新的技術時,要有意識地去衡量,新的技術選擇最終是否帶給用戶價值,而不是為了用新技術而用。
回到 ExplainThis 的網站,假如今天是要從零開始從寫一個以內容為主、互動性相對不高的網站 ,肯定不會選 Next 12,畢竟現在社群中那些「零 JavaScript」的框架,真的很強大。不過對於一個已經在線上好一陣子的網站,在評估完後,我們還是選擇維持繼續用無聊的技術。
至於你該選什麼技術來架設網站? 端看你的需求,以及效益成本分析。就算用 Wordpress 也沒有不好,甚至現在也看很多人用 Notion 架一個簡單但是清楚的頁面,也都是不錯的選擇。回過頭來說,技術的重點還是在服務你的客戶需求呀。