别再“误用”LLM!GitHub高级工程师亲述:Copilot让我的工作效率提升2-4倍

CSDN 2025年02月07日 19:54 江苏

大模型走进程序员的日常之际,你都会用它来做些什么?它的能力是否达到你的预期?本篇文章中,GitHub 资深工程师将分享他在实际工作中对这些工具的真实应用场景,也希望这些经验能够带给你一些启发。

原文链接:https://www.seangoedecke.com/how-i-use-llms/

作者 | sean goedecke  翻译工具 | DeepSeek

出品 | CSDN(ID:CSDNnews)

在软件工程师群体中,大家对大语言模型(LLMs)的看法分歧很大。有些人认为这是行业有史以来最具变革性的技术,而有些人则认为这只是又一个被过度炒作的产品,虽然听起来很酷,但对真正从事严肃工作的专业人士来说并不实用。

作为在 GitHub 工作的资深工程师,我曾经有一年直接参与 Copilot 的开发,现在主要负责 GitHub Models 相关的工作,我个人觉得,AI 给我带来了很多价值。我认为那些觉得 AI 没用的人,或许是“用错了方式”,也就是说,他们没有以最有效的方式使用这些语言模型。

在这篇文章中,我会分享一些我在日常工作中如何使用 AI 的具体例子。

图片

CSDN 付费下载自视觉中国

图片

编写生产环境中的代码

每次写代码时,我都会使用 Copilot 的自动补全功能。

我接受的补全建议几乎都是些模板化的代码,比如填充函数参数或类型。我很少让 Copilot 帮我生成业务逻辑,但偶尔也会这么做。在我擅长的领域(比如 Ruby on Rails),我相信自己能比 LLM 做得更好。对我来说,它更像是一个“非常棒的自动补全工具”。

不过,真正工作中,我也经常遇到一些我不太擅长的领域或方向。有时候,我需要对一些不太熟悉的领域进行小的战术性修改,比如 Golang 服务或 C 库。虽然我知道这些语言的语法,也写过一些个人项目,但对它们的惯用写法不太有把握。在这种情况下,我会更依赖 Copilot。通常我会启用 o1 模型的 Copilot Chat,在输入框粘贴我的代码,然后直接问:“这段 C 代码符合惯用写法吗?”

我清楚的知道,这种依赖 LLM 的方式是有风险的,因为我不确定自己是否遗漏了什么。LLM 基本上能让我能像一个聪明的实习生一样工作,但我也得像一个靠谱的实习生那样,确保有该领域的专家帮我审查代码。即便如此,我认为这种快速进行战术性修改的能力非常有价值。

图片

编写一次性代码

当我编写一些永远不会进入生产环境的代码时,我会更随意地使用 LLMs。

比如,最近我做了一项研究,需要从 API 中提取一些公共数据,进行分类,并用一系列快速的正则表达式来近似这些分类。所有这些代码都只在我的笔记本电脑上运行,而我基本上都是用 LLMs 来编写的:提取数据的代码、运行另一个 LLM 进行分类的代码、对数据进行分词并统计词频的代码等等。

LLMs 非常擅长编写那些不需要维护的、能运行的代码。像这种只运行一次的非生产代码(比如用于研究的代码),正是 LLMs 的强项。

我觉得,使用 LLMs 让我完成这些任务的速度比不用它们快了 2 到 4 倍。

图片

学习新领域

对我来说,LLMs 最有用的功能之一就是充当“随叫随到的导师”,帮助我学习新领域。比如,上周末我学习了 Unity 的基础知识,整个过程几乎全靠 ChatGPT-4o 帮忙。用 LLMs 学习的魔力在于,你可以随时提问:不仅是“X 是怎么工作的”,还可以追问“X 和 Y 有什么关系”。更棒的是,你还可以问“我理解得对吗?”这样的问题。我经常把自己学到的东西整理出来,然后丢给 LLMs 检查,它会指出我哪里理解对了,哪里还有误解。我真的很爱问 LLMs 问题。

学习新东西时,我会做很多笔记。能够直接把笔记复制粘贴进去,让 LLMs 帮我检查,简直太方便了。

至于 LLMs 会不会“胡说八道”(即产生幻觉),说实话,自从 GPT-3.5 之后,我很少遇到 ChatGPT 或 Claude 乱说的情况。我学习的领域通常都是已经被广泛研究过的(只是我不熟悉),所以 LLMs 出错的概率很低。

到目前为止,我还没遇到过从 LLMs 那里学到的东西是完全错误或虚构的。

图片

自己修复 bug 无解时,让 AI 试试也无妨

虽然我不常这么做,但有时候当我真的被一个 bug 卡住时,我会把整个文件(或几个文件)上传到 Copilot Chat,粘贴错误信息,然后直接问:“你能帮我吗?”

我之所以不常这么做,是因为我觉得自己目前比 AI 更擅长找 Bug。大多数时候,Copilot(或者 Claude,用于一些个人项目)都会被我搞懵。但当我真的束手无策时,试试也无妨,毕竟这几乎不费什么力气。我记得有两三次,LLMs 帮我发现了一些我忽略的细节,节省了我很多时间。

由于 LLMs 在这方面还不够强,我不会花太多时间去反复尝试或帮它“解围”。我只是试一次,看看它能不能搞定。

图片

校对拼写和逻辑错误

我经常写一些英文文档,比如架构决策记录(ADRs)、技术总结、内部帖子等。我从来不让 LLMs 帮我写这些文档,一方面是因为我觉得自己写得比 LLMs 更清晰,另一方面是我对 ChatGPT 那种“标准风格”不太感冒。

不过,我偶尔会把草稿丢给 LLMs,让它帮我检查。LLMs 非常擅长查找拼写错误,有时还会提出一些有趣的观点,让我对草稿进行修改。

和 bug 修复一样,我不会反复让 LLMs 校对,通常只让它检查一轮。它经常会给出一些风格上的建议,但我一般都会忽略。

图片

总结

我用 LLMs 做这些事情:

  • 用 Copilot 进行智能代码补全

  • 在我不熟悉的领域做小的战术性修改(一定会让专家审查)

  • 编写一次性研究代码

  • 通过提问学习新领域(比如 Unity 游戏引擎)

  • 作为最后手段的 bug 修复工具,碰碰运气

  • 校对长篇英文文档的拼写和逻辑

我目前不会用 LLMs 来帮我做这些事情:

  • 在我熟悉的领域帮我写完整的 PR

  • 写 ADRs 或其他技术文档

  • 研究大型代码库并理解其实现方式

图片

推荐阅读:

▶从 DeepSeek R1 看未来:揭秘爆火 AI 模型背后的技术原理,探索 AI 的下一大步

▶美国会拟在政府设备上禁用DeepSeek;小米眼镜官微上线,或本月发布;OpenAI升级o3-mini模型思维链 | 极客头条

▶首发 | 昆仑芯 | 国产AI卡DeepSeek训练推理全版本适配、性能卓越,一键部署等您来(附文档下载方式)

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐