書摘筆記|Vibe Coding: The Future of Programming(Addy Osmani)
來源:Addy Osmani,《Vibe Coding: The Future of Programming》(O'Reilly, Early Release)
這是一篇整理筆記,記錄這本書關於「70% 問題」、常見失敗模式與三種人機協作模式的核心觀點。重點是可複習的概念與線索,不是完整教學。
核心主題
AI 能又快又好地完成軟體開發中約 70% 的工作,但剩下的 30%——邊界情況、架構、可維護性——仍然需要人類的工程判斷;這 30% 正是 AI 時代工程師價值的所在。
核心觀點
- 70% 問題:AI 擅長處理「偶然複雜度」(重複、機械、有模式可循的部分),但「本質複雜度」(理解與管理問題本身的複雜性)仍在人類肩上
- 知識悖論:資深工程師用 AI 加速「已經會的事」,新手卻想用 AI 學「還不會的事」——同一套工具,兩種命運
- AI 的自信遠超過它的可靠:產出看起來完整漂亮,可能藏著只有懂的人才看得出的長期地雷
- AI 不會發明訓練資料之外的新抽象、新策略,也不為決策負責——決定做什麼、怎麼架構、為什麼,始終是人類的事
- 工程師的角色不是消失,而是改變:打字變少,指揮與把關變多
詳細內容
部分一:常見失敗模式
核心概念: 不懂原理的使用者會掉進可預測的失敗循環。
關鍵要點:
- 「兩步後退」反模式:修一個小 bug → AI 的修法弄壞別處 → 再請 AI 修 → 生出兩個新問題 → 無限循環
- 「Demo 品質陷阱」:happy path 跑得漂亮、投資人驚豔,真實使用者一點就崩——錯誤訊息看不懂、邊界情況閃退、慢速裝置卡死
- 越自動的 agentic AI(自主規劃、執行、迭代),越放大基本功的重要性——看不懂過程的人,出事時無從介入
案例/數據: 一位非工程師的真實心聲:AI 帶你走 70% 的路,但最後 30% 令人挫折——一步前進、兩步後退;「如果我懂程式我就能自己修,但我不懂,所以我懷疑自己到底學到了什麼」。
部分二:三種有效的人機協作模式
核心概念: 觀察數十個團隊後歸納的三種可複製工作型態。
關鍵要點:
- AI 當第一稿作者(First Drafter):AI 生初稿,人類重構、補錯誤處理、寫測試、做文件
- AI 當結對夥伴(Pair Programmer):人與 AI 持續對話、緊湊回饋圈;每個獨立任務開新對話、prompt 聚焦、頻繁 commit
- AI 當驗證者(Validator):人寫程式,AI 負責掃漏洞、生測試、抓異常
- 版本控制在 AI 時代更重要:AI 產出的變更要「更頻繁 commit」且「不同性質的變更分開 commit」,以便回溯
案例/數據: 兩種團隊型態——「bootstrappers」(用 Bolt/v0 從零到 MVP,數小時出原型)與「iterators」(用 Cursor/Copilot 融入日常工作流);兩者都快,但都有隱性成本。
部分三:黃金法則(精選)
核心概念: 讓 AI 協作不翻車的行為準則。
關鍵要點:
- 把 AI 當「需要監督的 junior」:產出一律視為草稿
- 永遠用「你的原始意圖」驗收 AI 的產出,而不是看它順不順眼
- 不要合併你看不懂的程式碼——理解是可維護性與安全的底線
- 所有程式碼(不管人寫的還是 AI 寫的)都過同一套 code review
- 把好用的 prompt 存起來重複用,團隊共享
部分四:不同資歷的人類價值(第二章)
核心概念: 70% 自動化之後,各層級工程師該把力氣放哪。
關鍵要點:
- 資深:當「架構師+總編輯」——把需求翻譯成規格給 AI,再逐行把關;帶人、立標準、用領域直覺抓 AI 的錯
- 中堅:往系統整合、邊界管理、效能與 DevOps、系統思維深化;學會問「如果…會怎樣?」——AI 預設只解一般情況
- 新手:基本功不能跳過「為什麼」;定期「無 AI 日」練獨立除錯;從「消費答案」轉成「建立理解」——把每個 AI 產出當教材拆解
- 共通的耐久技能:系統設計、批判思考、測試與除錯、跨職能溝通、持續學習
金句摘錄
- 「AI 帶你走 70% 的路,但最後的 30% 才是挫折的開始。」(第一章,引述 Peter Yang)
- 「今天的 LLM 像一個產能驚人的 junior 工程師——快得不可思議,但可能嗑了什麼,隨時端出瘋狂的方案。」(第一章,引述 Steve Yegge,意譯)
- 「AI 的自信遠遠超過它的可靠。」(第一章)
- 「我們面對的不是程式設計的終結,而是『我們所知的程式設計』的終結。」(第二章,引述 Tim O'Reilly,意譯)
- 「LLM 是給力量使用者的力量工具。」(第二章,意譯)
實踐方法
- 每個獨立任務開一個新的 AI 對話,prompt 聚焦單一目標
- AI 產出一段可用的程式就 commit 一次;不同性質的修改分開 commit
- 驗收時拿「原始需求」逐條對,不憑感覺
- 看不懂的程式碼不上線——先請 AI 逐行解釋到你懂為止
- 定期安排「無 AI 日」,保持獨立解題與除錯的手感
- 建立團隊(或個人)的 prompt 範本庫,好 prompt 重複用