從 Vibe Coding 狂歡到 PR 審查地獄:這幾年軟體工程界到底發生了什麼事?

軟體工程界在 AI 浪潮下經歷從生成狂歡到架構審查與工程紀律重構的演進圖

當 Andrej Karpathy 在社群上拋出 Vibe Coding——「只要感覺對了就跑,甚至不用看一行程式碼」——這概念時,整個科技社群瞬間陷入了狂歡。社群平台上滿是「完全不懂程式的小白在週末用 Prompt 刻出一個 App」的神話,伴隨而來的,是各種「軟體工程師已死」、「程式碼打字員即將全數失業」的預言。

然而,當這股熱潮進入生產級系統與真實團隊後,社群討論與公開調查呈現了另一面。2025 年 Stack Overflow 開發者調查中,對 AI 輸出抱持不信任的人多於信任者;最常見的挫折之一,就是「答案看似正確卻差一點」,以及除錯生成程式碼反而更花時間。

工程師確實可以少寫一些樣板程式,但痛苦點也可能轉移到另一端:AI 能在短時間內產生大量變更,人類仍必須花時間審查、理解、執行測試並修復邊界問題。這不代表 AI 一定拖慢開發,而是提醒我們不能只用產生程式碼的速度衡量生產力。

1. AI Slop 與 PR 審查地獄:技術公地悲劇的誕生

在過去一年多的社群討論中,一個被頻繁提及的詞彙是 AI Slop(AI 產生的程式碼垃圾)。

在許多開發者討論中,資深工程師與 Tech Lead 提到「審查塞車」現象:

  • 看似能動,但結構脆弱(Technically correct, but architecturally wrong):AI 產生的程式碼往往能通過基本的快樂路徑(Happy Path),但內部卻充斥著層層無意義的包裝器(Wrappers)、被悄悄吞掉的例外錯誤(Swallowed Exceptions)、重複卻互不相通的邏輯,以及看似精美實則空洞的「假抽象」。
  • 審查者的公地悲劇:提交者只要按一下按鈕、甚至不用理解細節,就能在三秒內送出一個包含 800 行程式碼的 Pull Request。而審查者卻必須耗費巨大的認知能量,逐行追蹤隱蔽的非同步競態(Race Condition)、記憶體洩漏與安全性盲點。
  • 維護信心的瓦解:一旦程式庫被大量未經理解的生成程式碼滲透,團隊更難判斷哪些抽象能安全修改,長期維護成本也會提高。

這些現象指向同一件事:生成程式碼變便宜了,但信任與驗證仍然需要工程判斷。METR 在 2025 年針對 16 位熟悉大型開源專案的資深開發者進行隨機實驗,該情境下使用當時的 AI 工具平均慢了 19%。研究團隊也明確提醒,這只是特定工具、任務與樣本的結果,不能推論所有開發者都會變慢。

2. 初階工程師斷崖:如果沒有練習場,未來的 Senior 從哪裡來?

在 Reddit 的 r/cscareerquestions 等討論版上,另一個引發廣泛焦慮的議題被稱為 The Junior Developer Cliff(初階工程師斷崖)

傳統的軟體工程培訓體系,本質上建立在「從基礎踩坑中成長」的路徑上:
新人從撰寫樣板代碼、修復瑣碎的小 Bug、編寫基礎單元測試開始。正是這數千小時看似低效的「手刻經驗」,讓工程師的大腦建立了對記憶體模型、執行緒狀態、邊界條件與網路延遲的直覺。

當企業開始期待 AI 吸收樣板程式、簡單測試與初步文件時,社群也出現一個合理擔憂:如果初階任務減少,新人要在哪裡累積除錯與系統判斷經驗?這是仍在發展的產業問題,不能簡化成所有公司都已改成「一位 Senior 加多個 AI 代理人」。

這引發了整個產業最深刻的結構性難題:
如果所有初階任務都被 AI 吞噬,新手該如何累積足夠的架構直覺與批判能力,在未來成為能夠看穿 AI 幻覺的資深架構師?

一個較可行的方向是:初階工程師的職責需要隨工具改變。 新人不能只定位為「語法打字員」,也要更早學會設計規格、定義測試邊界,並對 AI 產出的結果進行行為審查。

3. 無聊技術的強勢逆襲:為什麼 Boring Tech 在 AI 時代大獲全勝?

在過去幾年,技術社群流行追求過度工程化:微前端、數十個微服務、複雜的動態框架與多層分散式快取。

到了 2026 年,Choose Boring Technology(選擇無聊技術)再次受到重視。原因很實際:成熟工具的文件、錯誤模式與範例較多,人與 AI 都比較容易理解和驗證。

flowchart TD
    classDef patch fill:#fee2e2,stroke:#dc2626,stroke-width:2px,color:#7f1d1d;
    classDef gate fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#78350f;
    classDef test fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d;

    P1["Vibe Coding 狂歡:無規格任意生成"]:::patch
    P2["程式庫累積看似可用但細節脆弱的 AI Slop"]:::patch
    P3["驗證閘門:型別、可執行測試與 CI"]:::gate
    P4["回到範圍清楚的架構與嚴格審查"]:::test

    P1 --> P2
    P2 --> P3
    P3 --> P4

Context Window 的物理限制

AI 代理人在處理分散於許多倉庫的微服務時,比較容易遺漏跨服務脈絡。相對而言,範圍清楚、高內聚的單體式架構(Monolith),通常更容易提供完整相關檔案;但大型單體同樣可能超出上下文限制,重點仍是清楚的模組邊界。

凌晨三點的除錯可預測性

Postgres、SQLite、標準 SQL、簡單的 REST/RPC 與傳統伺服器端渲染(SSR),因此成為許多團隊優先考慮的選項。這不是說新技術都不值得採用,而是當程式碼大量由 AI 協助產出時,工程師更需要清楚的日誌、成熟的工具與可預測的故障模式

4. 驗證即一切:測試驅動開發(TDD)與型別系統的黃金時代

Kent Beck 在「Augmented Coding: Beyond the Vibes」案例中示範如何用 TDD 約束 AI;Simon Willison 也主張,使用 Coding Agent 時自動化測試已不再是可有可無。更準確的說法是:AI 沒有取代測試,反而讓可執行規格、測試與人工驗收變得更重要。

當代碼生成的成本趨近於零:

  • 強型別系統(TypeScript、Rust) 能在編譯期提早攔截一部分型別與介面錯誤,但效果取決於專案設定,沒有可信證據支持固定的 60% 比例。
  • 自動化測試套件(Unit / Integration / E2E) 不再只是覆蓋率報告,也能讓人類用可執行的方式表達系統意圖;但測試不是唯一形式,規格、程式碼審查與實際操作驗收同樣重要。
  • 嚴格的 CI/CD 閘門 充當全自動守門人,沒有通過所有測試與靜態分析的變更,一律不得進入主分支。

5. 獨立開發者的超級槓桿:一人軍團的崛起

雖然大型團隊在 PR 審查與組織流程上面臨新問題,但對於獨立開發者(Indie Hackers)與微型團隊而言,這仍是生產力槓桿明顯增加的時期。

一位具備系統思維的工程師,現在能藉由規範清楚的 AI 工作鏈,更有效率地處理資料庫、前後端、自動化測試與基礎設施等不同工作。

關鍵差異在於:
你是讓 AI 在毫無邊界的情況下自由塗鴉,還是為它搭建了一套包含型別約束、測試閘門與標準化狀態機的堅固鐵軌?

在清楚的規格與驗證流程上,個人的生產力槓桿可以明顯增加;缺乏約束時,增加的產出量也可能快速轉化成技術債。

結語:軟體工程從未死亡,它只是剝離了表象

回顧這幾年的變革,我們會發現:軟體工程從未死亡,死去的只是低思考密度的打字行為。

當寫程式碼的門檻被抹平,軟體開發重新回歸到它最核心的本質——理解真實世界的不確定性、定義清晰的系統邊界、在複雜的權衡中做出架構取捨,並為系統的正確性與長期穩定負起責任。

未來的頂尖工程師,不再是以「每分鐘能產出多少行代碼」來定義身價,而是以「能把多複雜的業務混沌,梳理為優雅、穩健且可驗證的系統」來展現其不可替代的核心價值。

資料來源