选择无聊的技术 (boring technology)
2022年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 架一个简单但是清楚的页面,也都是不错的选择。回过头来说,技术的重点还是在服务你的客户需求呀。