譯者 | 核子可樂
審校 | 重樓
企業在積極引入AI的同時,也希望雇用更多工程師,期望開發者能夠借AI之力將產出“提升10倍”。但要真正高效運用AI編碼助手,其中也有不少門道。
首先是AI編碼助手的固有局限,其存在大量不確定性,因此容易引發種種難以避免的意外行為,例如隨機刪除代碼或引入邏輯錯誤。
此外,驅動編碼助手的大模型本身也有問題。一旦使用不當,大模型也可能成為代碼刪除或者安全漏洞的來源。此外,AI智能體還經常陷入遞歸循環乃至無休止的測試循環當中,嚴重影響生產效率。
那么對于AI輔助開發這一未知領域兼全新技能類型,開發者和技術領導者們該如何破局?以下七種方式也許能夠帶來一點啟示。
1.改善提示詞技巧
Sonar公司首席業務增長官Harry Wang認為,“有效運用AI編碼助手的第一步,是從清晰、定義明確的提示詞開始,這也是解開代碼庫復雜性的鑰匙。”
- 元提示:在提示詞中嵌入指令,幫助模型完成任務。
- 提示詞鏈:創建鏈式提示詞工作流,改善規范與規劃效果。
- 一次性提示詞:在提示詞中包含輸出參考,例如示例代碼結構。
- 系統提示詞:更新底層系統提示詞以反映項目特定需求。
低質量提示詞往往成為安全隱患的來源,因此必須認真磨練這項技能。相關研究發現,在十項常見弱點枚舉(CWE)攻擊方法中,低效提示詞至少會被其中四項攻破。
2.保持人類參與
根據BlueOptima發布的2024年《生成式AI對軟件開發者績效影響》報告,“適度”使用生成式AI的開發者表現最佳(報告分析了來自21萬8354名企業軟件開發者的總計8.8億項提交成果)。
報告指出,最佳結果源自AI輔助與人類專業知識間的最佳平衡。在實踐中,代碼編寫和驗證工作可以交給AI,項目設計與最終審批則更適合人類。
3.為工作內容選擇正確的大模型
只有在準確性、速度和成本等指標上綜合最優的大模型,才是最適合特定需求的選項。
在LLM Stats公布的排行榜中,Anthropic Claude 3.5 Sonnet的編碼能力在HumanEval基準上得分最高。此外,Claude在安全性方面同樣名列前茅。研究發現,Claude 3.7 Sonnet生成的代碼比OpenAI GPT-4o和谷歌Gemini的輸出結果更安全。
與此同時,OpenAI o3的知識儲備最為豐富,DeepSeek R1的推理能力則一舉登頂。此外,Gemini 1.5 Pro提供最大的token窗口,Lambda擁有最高的性價比。
4.以迭代方式編程并測試
專家建議逐步開發AI代碼。Honeycomb公司聯合創始人兼CTO Charity Majors表示,“一定要將代碼變更的規模控制得盡量更低。千萬不要一次性生成整個網站、API或者功能。”
Layered Sysetm公司API策略師Kevin Swiber則提到,如果大家正在處理一個3000行的代碼文件,那一定要進行拆分。這時候直接使用AI重構將帶來巨大風險,因為AI經常會無故刪除或者移動代碼,所以“一定保證只用AI對細節做優化,阻止直接把大問題交給它。”
因此,Majors建議從端點、組件或者任務著手,之后逐步由AI生成測試、運行測試并生成更多代碼。
5.提前規劃
除了直接在代碼編輯器中使用GitHub Copilot、Cursor或者Continue等工具獲取建議,開發者也可以在行動之初就規劃好一切。Swiber建議使用Markdown文件為AI助手編寫一份完整計劃,借此明確項目目標并詳細說明進度安排。另外,最好能備份原始文件,以便隨時恢復到之前的可用版本。
Swiber強調,“要提前規劃并留下線索,方便自己和智能體靈活參考。”再有,可以使用明確的行內注釋為智能體提供指引,例如“不要修改這些代碼行。”
6.測試、測試、還是測試
對于將要投入生產的AI生成代碼,一定要進行徹底審查。Majors強調,“永遠不要發布自己不理解的東西。”
Sonar公司的Wang表示,“哪怕代碼是由AI生成,最終也還是要由人類對其質量和安全性負責。”
Graphite公司CEO兼聯合創始人Merrill Lutsky認為,“AI生成的代碼更需要嚴格審查和測試,以保證其正確性、高性能與安全性。”
在這方面,Lutsky認為AI造成的問題也完全可以由AI來解決。他認為可以使用AI智能體簡化DevOps流程、自主完成審查及測試流程,并根據需要引入人為干預,借此不斷提升CI/CD的執行效率。
7.關注數據訪問
另一項重點,是為AI提供適當的上下文。Cockroach Labs公司CEO Spencer Kimball表示,“只有AI獲得了足夠的信息,才能做出合理的判斷。”當前模型在上下文窗口和外部數據訪問能力方面仍有局限,但開發者可以直接用內部數據、文檔乃至整個項目作為素材進行大模型微調,借此確保公共大模型也能體會項目中的細微差別。
更重要的是,Kimball認為這將成為以開源為核心的年輕技術企業們的絕佳機遇,因為他們的源代碼和設計文檔都會公開交付給大模型。
大模型在連接性方面也取得了重大進展。例如,OpenAI的智能體SDK與Anthropic模型上下文協議(MCP)在將AI與工具、數據源及其他AI對接方面取得了長足進步。
未來展望
AI編碼應用正邁向成熟期,每位開發者都應當盡早體驗這些工具。Swiber強調,“在擅長的方面,AI編碼助手確實能節約下大量時間。”
如今的AI編碼助手不再是實驗室里的玩具,而開始成為企業開發流程中的標準。Gartner預計到2028年,75%的企業軟件工程師將使用AI編碼助手。
中小型企業將在這波浪潮中獲得顯著推動。Kimball認為在AI時代下,十幾個員工支撐起年度經常性收入高達1億美元企業將不再是夢想。
但要讓這一切成為現實,開發者必須掌握新的工具駕馭智慧、建立真正高效的新型工作流。希望以上七條建議,能夠成為大家擁抱AI編碼時代的起點。
原文標題:7 ways to improve your AI coding results,作者:Bill Doerrfeld