譯者 | 布加迪
審校 | 重樓
軟件開發(fā)界瞬息萬變。隨著功能強(qiáng)大的AI工具和協(xié)作平臺(tái)大行其道,開發(fā)者體驗(yàn)日益備受重視,傳統(tǒng)的編程方法也在隨之發(fā)生變化。一種全新的編程方法應(yīng)運(yùn)而生:氛圍編程。氛圍編程不只是編寫代碼,它更注重擁抱創(chuàng)意過程,充分利用智能工具,并打造一種兼顧生產(chǎn)力與真正享受的工作流程。本文將帶你了解氛圍編程,并熟悉掌握它的若干基本規(guī)則。
氛圍編程簡介
氛圍編程是一種注重流程、創(chuàng)造力和快速迭代以及技術(shù)質(zhì)量的方法。其概念由OpenAI 聯(lián)合創(chuàng)始人Andrej Karpathy等人提出,通常涉及使用自然語言提示與大語言模型(LLM)和AI編程助手進(jìn)行交互,而不是從頭開始精心編寫每一行代碼。
為什么氛圍編程越來越流行?
氛圍編程鼓勵(lì)使用現(xiàn)代工具、快速迭代,并保持旺盛的創(chuàng)造力,將工作重心從繁瑣的擊鍵輸入轉(zhuǎn)移到戰(zhàn)略方向和改進(jìn)完善上。以下是氛圍編程日益流行背后的幾個(gè)關(guān)鍵原因:
- 借助自然語言提示,連沒有扎實(shí)編程背景的開發(fā)者現(xiàn)在也可以構(gòu)建實(shí)用的功能性軟件,從而加快試驗(yàn)和學(xué)習(xí)。
- AI工具讓開發(fā)者能夠迅速從構(gòu)思到實(shí)現(xiàn):在幾分鐘而不是幾小時(shí)內(nèi)生成、測試和優(yōu)化代碼。
- 氛圍編程鼓勵(lì)探索和靈活性,使其成為業(yè)余項(xiàng)目、最小可行產(chǎn)品(MVP)和迭代設(shè)計(jì)的理想選擇。
- GitHub Copilot、Claude和ChatGPT等工具就像結(jié)對程序員一樣,實(shí)時(shí)提供建議、修復(fù)錯(cuò)誤并改進(jìn)代碼結(jié)構(gòu)。
- 開發(fā)者現(xiàn)在不再追求每一行代碼都盡善盡美,而是專注于項(xiàng)目進(jìn)展勢頭,使用AI勾勒解決方案的框架,并不斷完善。
氛圍編程必備要素
在深入研究這些原則之前,確保你已具備以下幾個(gè)必備要素:
- AI 集成代碼編輯器:集成GitHub Copilot的VS Code、Cursor(一款AI優(yōu)先的編輯器)或Replit之類的云環(huán)境,這些都是不錯(cuò)的工具。
- 便于使用LLM:像ChatGPT(OpenAI)、Claude(Anthropic)或 Gemini(谷歌)這些功能強(qiáng)大的聊天機(jī)器人對于在編輯器之外進(jìn)行研究、集思廣益和調(diào)試至關(guān)重要。
- 版本控制系統(tǒng):Git和 GitHub等類似的帳戶是跟蹤更改和保存工作的必備工具(規(guī)則12探討了這點(diǎn))。
- 擁有好奇心和開放性:準(zhǔn)備好嘗試和學(xué)習(xí)吧!
具備這些必備要素后,你就可以開始踏上氛圍編程之旅了。
掌握氛圍編程的13條規(guī)則
1.從模板開始入手。不要重新發(fā)明輪子。使用項(xiàng)目模板(來自框架、開源社區(qū)或你自己的模板)來處理樣板設(shè)置,包括結(jié)構(gòu)、配置和基本身份驗(yàn)證。這讓你可以立即將精力集中在獨(dú)特的功能上。
- 好處:節(jié)省時(shí)間,確保一致性,并減少設(shè)置錯(cuò)誤。
- 做法:探究 create-next-app、vite、cookiecutter 模板,或針對特定框架的啟動(dòng)器。
2.使用AI代理模式:在編輯器中利用自然語言。讓AI創(chuàng)建文件、編寫函數(shù)、重構(gòu)代碼或以對話方式解釋概念。
- 好處:降低門檻,加快任務(wù)執(zhí)行速度,并鼓勵(lì)試驗(yàn)。
- 做法:探索GitHub Copilot Chat、Cursor 聊天或其他的集成AI代理等功能。練習(xí)下達(dá)清晰簡潔的指令。
3. 利用 AI 進(jìn)行研究和激發(fā)靈感:不僅限于生成代碼。使用LLM來查找API,了解設(shè)計(jì)模式,比較庫,或生成解決方案創(chuàng)意。
- 好處:可以訪問最新信息、獲取代碼片段,并發(fā)現(xiàn)替代方法。
- 做法:明確提出查詢。提供上下文以便提出更好的建議。
4. 設(shè)計(jì)清晰的提示:AI輸出的質(zhì)量很大程度上取決于輸入。請具體說明,提供上下文(比如現(xiàn)有代碼、期望結(jié)果或約束條件),并隨時(shí)重新表述或提出后續(xù)問題。
- 好處:更好的提示帶來更準(zhǔn)確、更相關(guān)、更實(shí)用的AI響應(yīng)。
- 做法:從簡單的開始,逐步添加細(xì)節(jié)。如果AI 誤解了,請先闡明你的要求。
5. 構(gòu)建提示知識(shí)庫:當(dāng)提示效果極佳時(shí),請保存它!記錄處理常見任務(wù)的實(shí)用提示(比如編寫單元測試、生成文檔和重構(gòu))。
- 好處:節(jié)省時(shí)間,提高一致性,并共享知識(shí)(如果在團(tuán)隊(duì)中)。
- 做法:使用筆記應(yīng)用程序(比如Notion或Obsidian)、簡單的文本文件或?qū)S玫奶崾竟芾砉ぞ?,按類別整理你的有效提示。
6. 確保工作流程井然有序:為不同的任務(wù)或功能使用單獨(dú)的聊天、線程或工作區(qū)。這可以防止對話變得混亂,并幫助你跟蹤不同的開發(fā)路線。
- 好處:可以減輕認(rèn)知負(fù)荷,幫助集中注意力,并使重新審視決策更容易。
- 方法:清晰地命名聊天/線程(比如“功能:用戶個(gè)人資料編輯表單”或“錯(cuò)誤修復(fù):登錄錯(cuò)誤”)。
7. 明智地克隆和分叉:學(xué)會(huì)站在巨人的肩膀上構(gòu)建產(chǎn)品。使用開源項(xiàng)目作為起點(diǎn),或整合實(shí)用的庫。
- 好處:快速啟動(dòng)項(xiàng)目,提供學(xué)習(xí)機(jī)會(huì),并避免重復(fù)工作。
- 做法:在使用外部代碼之前,務(wù)必檢查許可證(比如MIT、Apache 2.0、GPL)和歸屬要求。
8. 輕松恢復(fù)先前狀態(tài):錯(cuò)誤難免會(huì)發(fā)生,尤其在快速試驗(yàn)過程中。嚴(yán)格使用版本控制系統(tǒng)(比如Git)來保存工作快照,以便輕松恢復(fù)更改。
- 好處:防止數(shù)據(jù)丟失,鼓勵(lì)大膽試驗(yàn),并使調(diào)試更容易。
- 做法:頻繁提交并留下有意義的信息(請參閱下一點(diǎn)!)。學(xué)習(xí)基本的Git 命令,比如提交、簽出和重置。
9. 頻繁且徹底地測試:生成或修改代碼時(shí),尤其是使用AI時(shí),立即進(jìn)行測試。在本地運(yùn)行你的應(yīng)用程序,瀏覽各個(gè)功能,并盡可能編寫自動(dòng)化測試(單元測試和集成測試)。AI 甚至可以幫助生成基本的測試!
- 好處:它可以及早發(fā)現(xiàn)錯(cuò)誤,提供即時(shí)反饋,并建立信心。
- 做法:使測試成為核心循環(huán):代碼 -> 測試 -> 優(yōu)化的一部分。詢問你的AI:“為這個(gè)Python 函數(shù)編寫pytest 單元測試。”
10. 使用AI輔助進(jìn)行智能調(diào)試:發(fā)生錯(cuò)誤時(shí),將準(zhǔn)確的錯(cuò)誤消息和相關(guān)的代碼片段粘貼到你的AI助手或大語言模型(LLM) 中。它們通常可以解釋錯(cuò)誤或提出修復(fù)建議。
- 好處:可以加快解決問題的速度,提供上下文,并幫助你從錯(cuò)誤中學(xué)習(xí)。
- 做法:提供清晰的上下文:“我在運(yùn)行該代碼 <粘貼代碼片段> 時(shí)遇到該錯(cuò)誤 <粘貼錯(cuò)誤消息>。這可能是什么問題?”
11. 保護(hù)敏感信息:切勿將API密鑰、密碼或其他機(jī)密信息直接提交到你的代碼或版本控制系統(tǒng)中。使用環(huán)境變量或?qū)S玫臋C(jī)密信息管理工具。
- 好處:可以防止你的代碼公開后發(fā)生災(zāi)難性的安全事件。
- 做法:使用.env文件(并將.env添加到你的.gitignore 文件?。⒉僮飨到y(tǒng)環(huán)境變量或云提供商機(jī)密管理器。
12. 謹(jǐn)慎地審查、理解和重構(gòu):AI代碼有時(shí)可能冗長、低效或風(fēng)格不一致。請花時(shí)間清理代碼,改進(jìn)變量名稱,并確保符合項(xiàng)目標(biāo)準(zhǔn)。
- 好處:確保代碼的正確性、安全性、可維護(hù)性以及你個(gè)人的學(xué)習(xí)和成長。
- 做法:通讀AI生成的代碼。它是否合理?是否按照你的要求執(zhí)行?是否存在明顯的錯(cuò)誤或安全漏洞?如果你不明白某段代碼,請AI逐行解決或逐個(gè)概念地解釋。不要只是復(fù)制粘貼黑框內(nèi)容。
13. 保持氛圍(培養(yǎng)快樂):記住重在樂趣!最優(yōu)秀的開發(fā)人員通常充滿好奇心、韌性十足且充滿熱情。別讓挑戰(zhàn)耗盡了你的精力。享受創(chuàng)造、試驗(yàn)和學(xué)習(xí)的過程。
- 好處:它能保持干勁,增強(qiáng)創(chuàng)造力,并使開發(fā)過程充滿樂趣。
- 做法:慶祝小勝利,休息一下,分享進(jìn)度,并保持對新想法的開放態(tài)度。
可能存在的陷阱
雖然氛圍編程鼓勵(lì)創(chuàng)造力、速度和試驗(yàn),但也存在風(fēng)險(xiǎn)。過度依賴AI工具會(huì)導(dǎo)致知識(shí)缺口、細(xì)微錯(cuò)誤和代碼質(zhì)量不穩(wěn)定。比如說,過度依賴AI而不去理解其建議背后的原因會(huì)削弱你的基礎(chǔ)知識(shí)。務(wù)必讓AI代理解釋其推理過程,以保持清晰的判斷。
AI生成的代碼也可能看似正確,實(shí)則隱藏著細(xì)微的錯(cuò)誤,因此全面的測試和批判性思維至關(guān)重要。AI輸出的格式不一致或質(zhì)量參差不齊是另一個(gè)常見問題。重構(gòu)提示并在提示中使用清晰的樣式指南有助于保持一致性。
有時(shí)你可能會(huì)遇到“提示死胡同”,即AI無法理解。重新構(gòu)建提示、將問題分解成更小的部分,甚至另換工具,都可以幫助你擺脫困境。最后請記住:AI只是為了輔助學(xué)習(xí),而不是取代學(xué)習(xí)。
結(jié)論
氛圍編程提供了一種在AI時(shí)代構(gòu)建軟件的有效且有趣的方式。通過利用智能工具、擁抱迭代并專注于創(chuàng)意流程,你可以提高生產(chǎn)力,并重新發(fā)現(xiàn)開發(fā)的樂趣。
然而氛圍編程并非魔法,它需要一種謹(jǐn)慎的方法,兼顧速度和責(zé)任。請記住,要嚴(yán)格審查AI輸出,進(jìn)行全面的測試,保護(hù)敏感信息,并繼續(xù)學(xué)習(xí)基本原理。
下一步:嘗試一下!選擇小型個(gè)人項(xiàng)目、簡單的 API、基本的Web實(shí)用程序、用于自動(dòng)化任務(wù)的腳本,并運(yùn)用這些原則。從模板開始入手,使用你的AI助手,快速迭代,經(jīng)常測試,最重要的是,享受編寫代碼的樂趣。
原文標(biāo)題:A Guide to Master the Art of Vibe Coding,作者:Anu Madan