與 LLM 一起進化:從《侏羅紀公園》CGI 革命中汲取的教訓
與 LLM 一起進化:從《侏羅紀公園》CGI 革命中汲取的教訓
「滅絕」悖論:從定格動畫到 LLM
軟體工程領域目前正經歷一段關於大型語言模型 (LLM) 角色的深刻焦慮。這種緊張關係反映了電影史上的一個關鍵時刻:Jurassic Park (1993) 的製作。
導演 Steven Spielberg 最初聘請定格動畫大師 Phil Tippett 使用 "go-motion" 技術來製作電影中的恐龍。然而,當 Industrial Light & Magic (ILM) 製作出 T. rex 的寫實 CGI 測試影片時,Tippett 留下了那句著名的評論:「我覺得自己快滅絕了。」
儘管最初受到衝擊,Tippett 並未因此被淘汰。他進行了進化,共同開發了 Dinosaur Input Device (DID)——一種能將人類表演轉化為數位動畫的實體骨架。透過將他在生物運動方面的專業知識與新技術相結合,Tippett 在 1994 年贏得了奧斯卡最佳視覺效果獎。對於現代程式設計師來說,教訓很明顯:避免滅絕的途徑不是抵抗,而是進化。
從編碼轉向問題解決
編碼是一種工具,而非價值的來源。正如 John Carmack 所言:「問題解決是核心技能。傳統程式設計所要求的紀律與精確度將保持為有價值的可轉移屬性,但它們不會成為進入門檻。」
要在 AI 時代進化,開發者應專注於以下轉變:
- 從手動撰寫轉向架構監督: 手寫每一行程式碼已不再是常態。現在的價值在於閱讀程式碼、理解複雜架構,並對 AI 生成的輸出進行迭代,直到其符合生產標準。
- 從數量轉向品質: 雖然 LLM 可以將輸出量增加 1000 倍,但它們也可能產生「無法解讀的混亂」或幻覺。工程師的角色是擔任品質過濾器,確保開發速度不會以犧牲可維護性為代價。
- 從依賴第三方套件轉向自定義實作: LLM 使得從頭開始實作中等複雜度的功能(例如 Levenshtein distance 函數)變得可行,從而減少了對臃腫的第三方依賴的需求。
AI 整合開發的實務策略
將 LLM 整合到專業工作流程中需要一種結構化的方法來維持一致性與品質。
建立代理人風格指南
為了防止「氛圍編碼」(vibe-coding)(盲目接受 LLM 輸出),工程師可以維護一份風格指南(例如 CLAUDE.md 或 GEMINI.md)供 AI agent 模擬。建議的限制條件包括:
- 避免魔術數字: 使用常數或 enums。
- 減少縮排: 利用早期返回 (early returns) 和
continue語句來避免「箭頭反模式」(Arrow Anti-Pattern)。 - 參數類型化: 使用 enums 而非布林值來定義函數參數,以提高清晰度。
- 分層: 嚴格遵守架構分層,不進行「穿透式設計」(punching holes)。
- 可讀性: 在邏輯區塊之間使用空行,並提供簡潔的註釋來解釋「做什麼」以及「為什麼」。
提高代碼審查的標準
由於 AI 降低了撰寫程式碼的難度,對最終交付物的期望應該隨之提高:
- 提交訊息 (Commit Messages): 不再有藉口寫出糟糕的提交訊息。可以使用 LLM 來將變更摘要成專業、祈使句格式的(例如,「Fix bug」而非「Fixed bug")。
- PR 粒度: 在 AI 的協助下,將大型 PR 拆解成較小、可審查的區塊現在變得輕而易舉,這應該成為強制要求。
- 自動化初步審查: 在人類審查者看到程式碼之前,使用整合了 LLM 的審查工具來捕捉基本的錯誤與風格違規。
- 嚴格測試: 由於使用 AI 進行大規模重構變得更加普遍,單元測試與 CI 測試比以往任何時候都更加關鍵,以捕捉人類與 LLM 可能都會遺漏的錯誤。
反對觀點與風險
雖然「進化或死亡」的敘事佔據主導地位,但工程社群內仍存在幾項關鍵風險與反對論點:
"GenAI 提供的交易是:結果充其量是平庸,平均而言會是垃圾,但它會做得非常快... 大多數人並不想要更多軟體,他們想要的是更少、但運作更好的軟體。"
關鍵疑慮:
- 品質瓶頸: 一些開發者認為,為了確保 AI 程式碼無誤且符合架構,審核每一行 AI 程式碼所花費的時間,會抵消掉生成速度帶來的增益。
- 「測試-程式碼迴圈」謬誤: 存在一種風險,即 LLM 生成的測試僅僅是為了匹配生成程式碼的行為,而非測試「預期」的業務邏輯,從而產生一種虛假的安全性感。
- 精神疲勞: 在不同專案中管理多個 AI agents 可能會導致顯著的「上下文切換」(context switching) 與精神倦怠。
- 工藝感的喪失: 有一種哲學上的擔憂,即「編織線索」的樂趣(手動編碼的行為)正被「平庸的壓倒性勝利」所取代。
結論:軟體生產的新模式
我們正在回歸到一種類似 1990 年代的模式,即小型、高能力的團隊(甚至是個人)可以生產出以往需要大型組織才能完成的專業級軟體。透過將 LLM 作為探索、架構分流與樣板程式碼生成的工具——同時維持嚴格的人類主導品質標準——開發者可以從感到「滅絕」轉變為成為新數位創作時代的監督者。