分享一些“氛圍編程”的工程化技巧 原創
編者按: 在氛圍編程日益普及的今天,開發者是否真的能夠完全依賴 AI 編程助手來完成從設計到測試的全流程開發?我們今天為大家帶來的文章,作者的觀點是:AI?輔助編程是一種強大的效率工具,但開發者必須始終保持主導權,承擔起代碼質量、架構決策和測試驗證的最終責任。
文章系統性地介紹了“氛圍編程”(Vibe Coding)的核心組成與工作流程,強調了明確需求與設計先行的重要性,并詳細闡述了如何通過提示詞工程、上下文管理、測試驗證和文檔協作等方式,最大化 AI 編程助手的效能。同時,作者也指出了當前 AI 在單元測試生成、多工具協調和會話管理等方面的局限性,提醒開發者保持批判性思維,不可盲目信任 AI 輸出。
作者 | Amazon Web Services - Labs
編譯 | 岳揚
01 “氛圍編程”
根據 wikipedia 介紹[1],氛圍編程(vibe coding)是一種現代軟件開發方式,用戶通過使用自然語言撰寫提示詞來生成代碼。
氛圍編程包含以下幾個協同工作的核心組件:
- Prompt(提示詞):用于指導編碼過程的初始指令與上下文信息
- Client(客戶端):用戶與編碼系統交互的界面,例如 Amazon Q Developer[2]?或 Cline[3]
- Additional context(附加上下文):可通過提供額外的上下文(如 AWS MCP 服務器)增強智能體的能力
需要重點強調的是:雖然編程 AI 想要提升開發效率,但其目標并非取代開發者。開發者始終是產品架構與產品愿景的主導者。 作為開發者,你需要理解、審查并驗證每一個技術決策 —— AI 只是增強能力的一種工具,不能替代你的批判性思維與專業判斷。代碼質量、架構選擇和技術決策的責任始終由人類承擔。請參閱這份指南[4]了解如何負責任地使用 AI。
?? 警告:切忌盲目信任 AI 助手生成的代碼。請務必:
1)全面審查并理解生成的代碼
2)驗證所有依賴項
3)執行必要的安全檢查
4)在受控環境中測試代碼
02 AI 編程客戶端
- 選擇標準:選擇 AI 編程客戶端時,需綜合考慮組織需求(如合規性、安全策略和供應商白名單等),同時權衡定價機制與 IDE 集成度等技術因素。
- 善用客戶端的功能特性:不同客戶端具備的獨特功能特性都可優化工作流程。以 Cline 為例,可先啟用 Plan(規劃) 模式討論和細化完善實施方案,待全面評審后,再切換至 Act 模式生成符合預定方案的代碼。建議定期查閱文檔和版本說明,及時掌握所用客戶端的新功能與更新動態。
- 功能兼容性:各客戶端支持的 MCP 功能特性存在差異(如 Tools/Resources/Prompts - 詳見 MCP 客戶端說明[5])。例如若計劃使用 CDK MCP 服務器,需確認所選客戶端同時支持 Tools 與 Resources 功能。
- 多客戶端策略:無需局限于單一客戶端。不同客戶端擅長的任務領域各異 —— 可搭配使用 Cline 進行后端 / CDK 開發,同時采用 Q CLI 處理 AWS 權限排查、網絡連通性檢查及安全組規則調試等運維場景。
- MCP 服務器選擇:面對日益豐富的 MCP 服務器生態,只需關注符合實際需求的解決方案。建議通過文檔研讀和實測驗證相結合的方式完成遴選。
03 項目需求與設計指南
在開始任何編碼任務前,請先遵循以下這些要求:
1)明確界定項目需求與項目范圍
2)建立全面的設計指南與編碼規范
3)記錄所有約束條件與限制因素
4)創建并維護包含已收集信息的 markdown 文件供客戶端調用
5)完成上述步驟后方可啟動編碼流程
你可通過 AI 助手協助確定特定功能或特定項目的需求、架構、設計及任務劃分。這一環節非常重要,在實施階段能為 AI 助手提供關鍵信息。但請謹記:AI 是協作工具而非決策主體。
清晰的需求與明確的任務定義有助于 AI 助手生成更精準的代碼,從而減少手動干預需求。但這絕不意味著你可以減少對生成代碼的審查與驗證責任。
需特別注意:絕不能僅依賴 AI 助手創建這些文檔。作為項目負責人,你必須始終保持對每個技術細節的掌控與理解。你的領域專業知識、實踐經驗與判斷力才是決策的核心依據。由于 AI 助手可能存在迎合用戶而非提出批判性反饋的傾向,建議以提問形式而非斷言的方式與 AI 交互。這種方式能引發更有價值的對話,并有助于發現潛在問題或替代方案。
04 提示詞工程
有效的提示詞設計對 AI 輔助開發(AI-assisted development)非常重要:
- 提供待完成工作的詳細規范
- 必要時附上相關上下文和文件資料
- 針對特定任務策略性地運用提示詞,便于后續審查和測試
- 將大型任務拆分為更為聚焦的子任務,以便獲得更佳的輸出結果
你可通過以下方式構建提示詞:
- 使用 Amazon Bedrock Prompt Optimization[6]?等工具重寫提示詞,使其產生更符合應用場景的推理結果
- 采用元提示詞策略(metaprompting)(譯者注:可以把它理解為 “讓 AI 生成提示詞的提示詞” 或 “提示詞的生成框架”。),先與 AI 助手討論功能特性,再將討論內容總結為供智能體開發該功能的提示詞
05 測試與驗證
通過以下方式確保代碼的質量與可靠性:
- 對每項代碼變更進行增量測試
- 盡可能實現自動化測試
- 依據原始需求進行驗證
- 維護完整的測試套件(CI/CD)
- 定期執行自動化的安全掃描與質量檢測
實踐中我們發現,完全依賴 AI?代碼助手生成單元測試效果不佳。AI 助手只能創建淺層測試或無關斷言,這些測試僅能驗證現有代碼,無法確保足夠的測試覆蓋率或有效的驗證。
強烈建議自主創建測試用例并采用測試驅動開發(TDD)方法。雖然可以借助 AI 助手基于你提供的測試用例來實現測試,但測試用例的定義必須由你親自完成。作為項目的負責人或監督者,你最了解業務邏輯、邊界場景以及軟件的預期行為。你的領域知識和對需求的理解對于設計能真正驗證應用行為的測試場景至關重要。
開發人員必須親自審查并確認每個測試用例能否:有效檢驗目標功能、妥善處理邊界情況、保持測試套件的整體質量。請謹記,有效的測試需要同時對業務需求和技術實現具有深度理解——這是當前 AI 助手無法完全復制的能力。
06 文檔管理
可通過以下方式維護高質量文檔:
- 記錄所有變更內容
- 確保客戶端生成規范的代碼文檔(如 Python 代碼中的 docstrings 和 README 中的書面文檔)
- 保持文檔與代碼變更同步
6.1 使用 AI 輔助進行文檔編寫
可與 AI 共同創建多種文檔,并在協同修改時實時更新。例如:規劃階段定義數據庫架構后,可讓 AI 生成 ER 圖。審查時若需調整,同步更新文檔與代碼。這種協作模式可應用于 API 設計、網絡架構等多方面。關鍵在于采用有邏輯的文檔拆分方式,保持文檔的實時性與簡潔度,幫助您和 AI 共同維持對上下文的清晰認知(對項目背景、進展和細節的掌握)和控制(對項目方向和內容的管理能力)。
小提示:結構良好的文檔有助于開發者和 AI 助手在整個項目周期中保持上下文連貫性。
07 局限與注意事項
7.1 MCP 服務器與工具數量
- 過多的 MCP 服務器/工具可能對客戶端性能產生負面影響
- 請閱讀客戶端文檔了解最佳實踐與限制規范
7.2 會話管理
- 過長的對話會因上下文容量持續增長而降低客戶端性能
- 建議為不同功能模塊維護獨立的對話線程
- 定期審查并清理對話歷史記錄
08 上下文管理
8.1 規則規范(Rules)與工具設置(Configuration)
為實現最佳效果:
- 明確定義代碼生成與修改的規則
- 保持跨環境配置的一致性
- 記錄特殊規則與例外情況
- 定期審查并更新配置設置
- 采用模塊化的設計原則
規則規范示例:
- 若文件超過 300 行代碼,應拆分為多個文件
- 為每個新增代碼段添加文檔說明
09 工具鏈
為充分發揮 AI 編程智能體的效能,請遵循軟件開發最佳實踐(需求明確、將代碼模塊化、文檔完善等)并善用工具(靜態代碼分析工具、代碼覆蓋率計算工具、CI/CD 流水線、測試套件、格式化工具等)。
當我們向編碼智能體分配任務時,它可通過運行測試用例和靜態分析工具進行自主迭代,必要時進行自我修正。這種方式能最大限度減少人工干預,優化開發流程。
10 版本控制
請遵循以下版本控制最佳實踐:
- 規范化的 Commits:高頻率提交代碼變更并提供清晰的描述性信息。可考慮使用 AI 輔助起草 Commit 說明,但務必人工審核確保其準確反映代碼變更內容,并為潛在的回滾提供有效參考點。
- 分支策略:新功能開發使用?feature?分支(feature branches)。重大變更應創建獨立分支以保持開發流程的靈活性。
- 倉庫結構:維護清晰有序的代碼倉庫結構。提前明確結構規范要求(例如文件大小限制、單體倉庫設置、前端框架選型),并將這些要求納入給 AI 的提示詞中,以確保代碼組織方式的一致性。
END
本期互動內容 ??
?如果 AI 能完成 80% 的代碼,你認為開發者最重要的核心能力是什么?是架構設計、提示詞工程、測試驗證,還是別的?
文中鏈接
[1]https://en.wikipedia.org/wiki/Vibe_coding
[2]https://aws.amazon.com/q/developer/
[5]https://modelcontextprotocol.io/clients
[6]https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-management-optimize.html
原文鏈接:
https://github.com/awslabs/mcp/blob/main/VIBE_CODING_TIPS_TRICKS.md

















