The app for independent voices

唯一沒有 bug 的程式碼,就是不寫程式碼

今天看到 Google for Developers 的官方帳號發了這張圖,圖中寫道「唯一沒有 bug 的程式碼,就是不寫程式碼」。這句話在 2026 這個 AI 能快速生成大量程式碼的時代背景下,顯得更值得被拿出來提醒。

舉例來說,閏秒 (leap second) 是造成許多全球規模重大事故的起因。在 2012 年多個全球規模服務 (例如 Reddit) 大當機,以及 2017 年的 Cloudflare CDN 事故等,都是源自於閏秒。

閏秒這個概念最早於 1972 年為了因應觀測到的太陽時不精確,以及地球自轉長期減速的問題而提出。具體做法是定期更新協調世界時(UTC),讓科學家在大多數情況下可以用 UTC 來觀測天體。

閏秒在 1972 年可能是一個可接受的解決方案,因為它同時滿足了科學界和電信業的需求。不過這這概念會導致,如果系統假設一分鐘是 60 秒,突然出現第 61 秒會導致計時器錯亂、分散式系統的時間不一致等問題。

直觀要解決這種錯誤,就是在系統的各個地方加上程式碼,來處理閏秒的特殊案例。然而,更理想的軟體工程做法,是從系統的角度讓應用層不用寫任何程式碼,也不會有相關的事故。

例如 Google 跟 Amazon 都有透過 Leap Smear (閏秒抹平) 的方式在協定層調整時間,讓應用層完全感知不到閏秒的存在,也因此應用層就完全不需要寫任何程式碼來處理。

從軟體工程的角度看,與其寫複雜程式碼處理邊界情況,不如讓邊界情況根本不存在。

回到 2026 年的脈絡,雖然產出程式變得便宜且快速,但透過程式碼解決問題不一定是最好的做法,這點真的值得時時放在心上提醒。

Feb 4
at
1:42 PM
Relevant people

Log in or sign up

Join the most interesting and insightful discussions.