提升 AI 编程效果的 6 个方法
CBINEWS
责任编辑:邹大斌
电脑商情在线
时间:2025-06-10 11:07
AI 软件开发 生成式AI AI编码助手
企业领导者们正在呼吁更多地使用 AI,而不是雇佣更多的工程师,希望开发者能够“实现 10 倍效率”。然而,要真正高效地使用 AI 编程助手,其实是一门艺术。
首先,AI 编程助手有其明确的优势和局限。AI 是非确定性的,这意味着它可能会产生意想不到的行为,例如随机删除代码或引入逻辑错误,这会带来不小的调试难题。
一些限制源自于驱动编程助手的大语言模型(LLM),而另一些问题,比如代码删除或安全漏洞,则可能源于它们的使用方式。此外,AI 代理经常陷入递归循环或无限测试周期,严重拖慢开发效率。
AI 辅助开发在很大程度上仍是一个未知领域,是一种开发者和技术管理者刚刚开始适应的全新能力。那么,我们该如何最大限度地发挥 AI 编程助手的作用呢?
业内专家建议通过掌握新的技能与策略来提升与 AI 合作的效率以及代码的质量。以下是几项有助于你与 AI 建立更成功协作关系的建议。
方法1:提升你的提示词技巧
“有效利用 AI 编程助手的第一步,是提供清晰、定义明确的提示,以应对代码库的特定领域复杂性。”Sonar 公司首席增长官 Harry Wang 表示。
在报告《AI 辅助工程指南:用 AI 驱动开发实现 10 倍效率》中,开发者效率公司 DX 列出了许多显著改善结果的提示技巧,包括:
· 元提示(Meta-prompting):在提示中嵌入指令,帮助模型更好地完成任务。
· 提示链(Prompt-chaining):创建一个提示链的工作流程——适用于需求说明和规划。
· 单样本提示(One-shot prompting):在提示中加入输出参考,如示例代码结构。
· 系统提示(System prompts):更新底层系统提示,使其反映项目特定条件。
不恰当的提示可能导致安全隐患,因此这是一个值得重点打磨的能力。Backslash Security 在 2025 年的研究发现,“幼稚”的提示方式导致所有主要 LLM 生成的代码至少存在 10 个常见弱点枚举(CWEs)中的 4 个漏洞。
方法2:人要参与进来
根据 BlueOptima 于 2024 年发布的报告《生成式 AI 对软件开发者绩效的影响》,研究了来自 218,354 名企业软件开发者的 8.8 亿次提交记录后发现,适度使用生成式 AI 的开发者表现最佳。
BlueOptima 的报告指出,最好的结果来自于 AI 协助与人类专业知识之间的最佳平衡。具体来说,就是将代码编写和验证交给 AI,而将项目设计和最终审批交给人类。
这使得人类在工作流的两端都有把关。“专业软件开发将逐步演变为由人类定义、AI 开发、AI 验证、人类批准的过程。” Sonar 的 Wang 如是说。
方法3:为任务选择合适的大模型
选择合适的大模型实际上是在准确性、速度和成本之间做权衡。如果你用便宜的工具处理复杂的任务,结果会很差;但如果用强大的模型处理简单的样板代码生成,又会造成资源浪费。
目前,《LLM Stats》网站将 Anthropic 的 Claude 3.5 Sonnet 排在编码性能首位,并引用了 HumanEval 基准测试作为依据。另一项名为《SWE-Lancer:前沿 LLM 能否靠真实自由职业软件工程项目赚取百万美元?》的研究也认为 Claude 在完成实际编程任务方面表现最好。
Claude 在安全性方面也排名靠前。上述 Backslash Security 研究显示,Claude 3.7 Sonnet 比 OpenAI 的 GPT-4o 和 Google 的 Gemini 生成的代码更安全。
尽管如此,Claude 是顶级 AI 程序员,但 《LLM Stats》认为,在知识方面表现最好的是 OpenAI o3,推理能力最强的是 DeepSeek R1。其他因素也可能更重要。Gemini 1.5 Pro 拥有最大的上下文窗口,而 Lambda 则是最具性价比的选择。
“了解这些工具的边界及其能力非常重要,这样才能最有效地使用它们。”Layered System 的 API 战略师 Kevin Swiber 表示。Swiber 还开发了一个矩阵,用于从技术能力、工作流集成、资源利用率、重构任务和调试能力等多个维度评估 AI 编程代理。
方法4:分阶段编程并持续测试
专家建议与 AI 分阶段合作。“提出小的代码修改请求,而不是大的。”Honeycomb 的联合创始人兼 CTO Charity Majors 表示。“不要一次性生成整个网站、整个 API 或整个功能。”
如果你正在处理一个 3000 行的代码文件,很可能需要将其拆解。问题是,用 AI 重构并不容易——AI 经常会意外删除代码或无预警地移动内容。“它会优化细节,却无法把握整体思路。”Swiber 说道。
因此,不仅应从小处着手,还应在每次迭代时进行测试。Majors 建议从一个端点、组件或任务开始,然后生成测试代码、运行测试、再生成更多代码,以此类推。
方法5:制订计划
某些 AI 编程问题可以通过在代码编辑器中而非聊天界面中解决,例如使用 GitHub Copilot、Cursor 或 Continue 这类支持 Git 式代码变更建议的工具。有些开发者也更倾向于直接调用 API。
另一种方法是从一开始就制定计划,并引导 AI 完成整个过程。Swiber 建议在一个 Markdown 文件中为 AI 助手撰写计划,详细说明项目目标及进展过程。他还建议备份原始文件,以便随时恢复到之前的版本。
“为自己和 AI 留下一条‘线索’。”Swiber 说。你甚至可以从添加明确注释中受益,例如“请勿修改这些行”。“开始专门为 LLM 添加防止有害操作的注释,这是一种有趣的实践。”
方法5:反复测试,反复验证
如果 AI 生成的代码要进入生产环境,就必须进行彻底审查。“永远不要发布你不理解的东西。”Honeycomb 的 Majors 说。“在你真正理解自己做了什么之前,不要发布你生成的内容。”
AI 所带来的效率提升不应忽视基础软件工程原则。从安全角度来看,测试尤其重要。“即使 AI 生成了代码,人类仍将对代码质量和安全性负责。”Sonar 的 Wang 表示。
可以说,AI 反而增加了测试的需求。“AI 生成的代码需要更严格的审查和测试,以确保其正确性、性能和安全性。”Graphite 的 CEO 和联合创始人 Merrill Lutsky 表示。
不过,Lutsky 也指出,在 AI 时代,传统的开发周期正变得越来越过时。“许多公司意识到他们的‘外环’流程——代码审查、测试和部署——已无法跟上 AI 生成代码变更的节奏。”
Lutsky 认为,AI 本身提供了改进其引发问题的机会。他建议可以使用 AI 代理来简化 DevOps 流程,自主完成审查和测试过程,并在必要时引入人工审核,从而减少手动步骤,加快 CI/CD 流程。
方法6:关注数据访问权限
另一个策略是赋予 AI 正确的上下文信息。“当 AI 拥有足够的信息时,通常能做出合理判断。”Cockroach Labs 的 CEO Spencer Kimball 表示。尽管当前模型存在一些固有限制,如上下文窗口大小和外部数据可访问性,开发者仍然可以采取一些策略。
向 LLM 提供内部数据、文档或整个项目作为上下文是有益的。将这些信息公开也有助于训练公共 LLM 更好地理解你项目的细微差别(同时还能鼓励 AI 向其他工程师推荐你的软件)。
有趣的是,Kimball 认为那些以开源为核心的新创公司在这个时代更有优势,因为它们的源代码和设计文档是公开的,可供 LLM 学习。“我们要成为 AI 自然推荐的对象——我们可以吸引全球的首席架构师。”他说。
至少,这也为使用那些坚持开源理念的组织所开发的第三方工具提供了强有力的理由。
连接性方面也取得了显著进展。例如,OpenAI 的 Agent SDK 和 Anthropic 的 Model Context Protocol (MCP) 正在推动 AI 与工具、数据源及其他 AI 之间的连接。Kimball 预测,这种自动化智能将带来巨大的生产力飞跃。
未来展望
“我们已经进入了一个成熟的阶段,所有人都应该开始接触和使用这些工具了。”Swiber 表示。“对于它们擅长的任务,它们是巨大的时间节省者。”
AI 编程助手早已不只是用于实验。它们正逐步成为企业开发流程中的标配。Gartner 预测,到 2028 年,75% 的企业软件工程师将会使用 AI 编程助手。
Kimball 认为,我们将走向一个让“有用事物”的创造更加民主化的未来,届时将出现更小、更定制化的市场。“借助 AI,非凡的新产品和服务将不断被创造出来。”他说。
中小型公司也将获得显著提升。Kimball 指出,由 15 个人支持年经常性收入达 1 亿美元的公司,已不再是天方夜谭。随着新成立的 Y Combinator 公司中 95% 的代码由 AI 编写,我们显然正朝着这个方向前进。
与此同时,要在编程中成功应用 AI,仍需要专家的智慧来驾驭工具,并构建真正高效的开发流程,尤其是在追求最优性能、成本节约或质量保障的情况下。结果也取决于是否为 AI 提供了正确的上下文信息。
如何从 AI 编程工具中获得最佳效果,正迅速成为开发者工具箱中的又一项重要技能。