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


























