
程式碼運行的次數多於閱讀的次數 (2023)
這篇文章探討了軟體開發優先級的層次模型,主張雖然程式碼的可讀性很重要,但系統的運維穩定性、使用者體驗以及商業價值對於成功而言更為關鍵。
背景
這篇文章探討了軟體開發中價值排序的演進,從經典的「程式碼被閱讀的次數多於編寫」出發,進一步推導出程式碼被「運行」與「維護」的頻率遠高於閱讀。作者提出了一個層級模型,認為商業利益、使用者體驗、維運穩定性與開發維護性之間存在優先順序,並藉此分析軟體開發中常見的失能現象。
社群觀點
在 Hacker News 的討論中,許多開發者對原文提出的價值層級表示認同,但也針對現實中的權衡提出了更殘酷的觀察。有觀點指出,雖然「使用者優先」是理想,但在當前的資本環境下,投資人的預期與商業擴張往往凌駕於使用者需求之上。這種「商業大於使用者」的傾向在具有競爭護城河的大型企業中尤為明顯,導致產品在取得市場壟斷後,往往會為了利潤而犧牲使用者體驗,甚至表現出敵對的態度。
針對程式碼品質與運行的關係,社群中出現了有趣的辯論。有資深開發者分享在頂尖金融機構的經驗,指出許多極度穩定且獲利豐厚的系統,其內部程式碼其實寫得非常糟糕,甚至充滿了不合理的設計,例如必須保持網頁開啟才能完成部署的原始系統。這反映出一個現實:對於商業營運而言,軟體「能跑且穩定」的價值有時確實高於「優雅且易讀」。然而,反對者則認為這種說法忽略了長期的技術債。就像汽車設計中若將機油濾清器放在引擎深處,雖然不影響行駛,卻會讓後續維護成本激增。如果軟體因為難以維護而導致無法及時更新或修復,最終仍會拖垮整個商業體系。
此外,法規被視為模型中缺失的關鍵環節。有留言指出,強大的監管力量可以作為商業與使用者之間的過濾器,防止企業為了獲利而過度剝削使用者。但也有人反駁,不當的法規(如隨處可見的 Cookie 隱私橫幅)反而會損害使用者體驗。討論最後延伸到技術演進如何消解這些矛盾,例如電動車的出現讓傳統引擎的維護難題消失,同理,軟體架構的典範轉移有時能直接跳過舊有的維護困境,而不僅僅是在舊框架內優化。
延伸閱讀
- Dan McKinley 的觀點:文中引用其關於系統長期維護成本遠超開發成本的論述。
- Charity Majors 的論點:關於「虛假軟體」與生產環境觀測性的相關討論。
- Subaru Legacy 維修案例:留言中用來對比設計優劣對維護性影響的實際案例。