什麼是 Vibe 編碼?

「Vibe 編碼」是一種應用程式開發方法,其特點是高度依賴於大型語言模型 (LLM) 來產生程式碼。

學習目標

閱讀本文後,您將能夠:

  • 描述 Vibe 編碼的含義
  • 瞭解 LLM 如何支援應用程式開發
  • 列出 Vibe 編碼的優缺點

複製文章連結

什麼是 Vibe 編碼?

Vibe 編碼是一種大量使用大型語言模型 (LLM) 來產生程式碼的軟體開發方法。「Vibe 編碼」一詞意為 AI 輔助編碼,由 OpenAI 共同創辦人 Andrej Karpathy 於 2025 年 2 月在 X 發表的貼文中首創:

最近出現了一種新型編碼,我稱之為「Vibe 編碼」——完全放任直覺,擁抱指數級成長的程式邏輯,甚至忘了自己寫過什麼程式碼。這都多虧了大型語言模型(比如帶 Sonnet 模型的 Cursor Composer)越來越厲害……產生的代碼複雜到我平常根本看不懂,必須花好一陣子慢慢讀才能理解。有時候 LLM 無法修復錯誤,我就只能繞過問題,或者亂改一通直到它神奇消失……雖然不適合正式專案,但拿來做週末隨手寫的小玩具倒是挺有趣的。

儘管是 Karpath 對這個詞彙進行了定義,但隨著 ChatGPT 和 Copilot 等 LLM 的公開發布,許多開發人員已經開始嘗試類似的 AI 輔助方法。

Vibe 編碼的目標是更快速地啟動可運作的應用程式和新功能。傳統編程講究精確無誤,而 Vibe 編碼則讓開發人員能以高層次的抽象指令指導 LLM,由模型自行產生包含精確邏輯的實際程式碼。

Vibe 編碼如何運作?

與 LLM 的其他使用案例類似,Vibe 編碼涉及向模型提供提示,該模型產生內容(在本例中為程式碼)作為回應。LLM 屬於生成式 AI 模型:經過海量範例訓練後,這些模型能辨識、解讀並產生自然語言與程式設計語言。這種跨領域的語言處理能力,使得 LLM 能在短短數秒內產生可運作的程式碼。

Vibe 編碼開發人員必須向 LLM 提供正確的提示,以便 LLM 建立正確類型的功能或應用程式。通常這些提示不必特別精確,但 LLM 可能需要多次嘗試才能產生以開發人員預期方式運作的程式碼。

在 LLM 產生程式碼之後進行測試和偵錯。這涉及識別錯誤和安全性問題。然後可以提示 LLM 解決這些錯誤,或者像 Karpathy 所描述的那樣——「繞過問題,或者亂改一通直到它神奇消失」(這種方法有時有效,有時無效,完全取決於錯誤的性質)。

有哪些流行的 Vibe 編碼工具?

目前已有許多廣泛使用的 LLM 可供開發者嘗試 Vibe 編碼。Copilot、Cursor、Codeium、Qodo、CodeWhisperer 和 Replit 都是 LLM 輔助軟體開發的熱門工具。

Vibe 編碼有哪些優缺點?

Vibe 編碼的優點包括:

  • 近乎即時的原型設計:開發人員團隊可以使用 Vibe 編碼來快速啟動新產品或功能創意的測試版並進行試用。
  • 減少不必要的手動工作:LLM 可以在 Vibe 編碼中自動產生樣板和底層程式碼(複製樣板程式碼在開發中一直很常見)。
  • 更快的開發和啟動:編寫新的應用程式或功能可能非常耗時,但 Vibe 編碼可以在幾秒鐘或幾分鐘內產生必要的程式碼——儘管可能需要進一步的提示才能使給定的應用程式或功能正常運作。

其中一些缺點可能包括:

  • 失去對程式碼庫的瞭解:如果開發團隊在進行少量審查的情況下發佈 Vibe 編碼的功能,則可能會不熟悉他們的程式碼庫。這可能會增加修復錯誤或漏洞的難度。
  • 合規性挑戰:有時 Vibe 編碼會導致傳送不受信任的程式碼。開發人員可能無法追蹤應用程式如何處理個人資料等關鍵流程,進而引發合規性問題。

是否存在與 Vibe 編碼相關的安全問題?

漏洞:任何應用程式都可能包含漏洞或安全風險。由於 Vibe 編碼可以加快編寫和交付新功能的速度,潛在危機在於更多安全問題可能未被發現就進入生產環境。更嚴重的是,當開發團隊對問題程式碼不熟悉時,這些安全漏洞將變得更加難以修復。

資料丟失:在商業環境中使用 LLM 時,存在輸入內容可能包含智慧財產權,並被分享至外部環境的風險。為保護內部資料,開發人員必須瞭解 LLM 在後端如何分割與處理資料。

詳細瞭解 LLM 的運作方式