写点什么

“新程序员”必须学会的 8 个 GPT 提问技术 | 抢免费注册 DevChat 名额

  • 2024-02-20
    马来西亚
  • 本文字数:2501 字

    阅读完需:约 8 分钟

“新程序员”必须学会的8个GPT提问技术 | 抢免费注册DevChat名额

ChatGPT 等大语言模型给人带来惊喜也给人带来了焦虑。惊喜在于它给各种工作带来的提效是肉眼可见的,焦虑在于很多人都担心会被 AI 替代,可能工程师们对此最深有感触。很多工程师已经开始用 GPT 来处理一些手头的开发工作,可能是写脚本,也可能是 code review,不过 GPT 给编程带来的效能提升到底有多大?使用 GPT 来辅助编程的“正确姿势”是什么?你真的知道么?


7 月 26 日, DevData Talks 邀请到了思码逸创始人兼 CEO 任晶磊老师。为了获得将 GPT 应用于编程的真实手感,他与团队身体力行,用 GPT“写了一万行代码”,并开发一款基于 GPT 的开源编程工具 DevChat,并上线了 VS Code 插件。在这次直播活动中,他以《当我用 GPT 写了一万行代码:研发数据的现状和智能编程的未来》为主题,分享了通过自家产品的演进看数据智能的发展趋势,揭示 GPT 在软件开发领域的实际操作场景和优化技巧,并在直播后半段,为线上观众们答疑解惑,做了深度交流。


本文为演讲精华整理。由于演讲包含大量技术细节,篇幅有限,我们仅摘选了部分亮点,建议大家在文末扫码获取 PPT、观看视频回顾。


今天分享主要分为五部分:

  • GPT 编程能带来多大效能提升?

  • 我可以问 GPT 什么问题?

  • 我应该如何向 GPT 提问?

  • 人在 GPT 编程中扮演什么角色?

  • GPT 在软件工程中扮演什么角色?

  • 我们如何成长为“新程序员”?

GPT 编程能带来多大效能提升?

+50%代码当量,注释和测试覆盖度大幅提升。

我们先从一个直白的数字谈起,到底用 GPT 之后有多大提升?我觉得要给一个数字的话,代码的产出量应该能比现在高 50%,首先看下图,图为思码逸本身的统计,拿我们自己做 Devchat 项目为例,它是以 Python 为主要编程语言的项目。

我们从开源社区里找了一些 TOP500 的开源项目来做对比,他们也是平均周提交数在两三个人的项目。其实很多成熟的开源项目,周均提交可能就两三个人,那如果对比下来,周均 1000 当量,当量是通过代码分析所获得的一个代码复杂度的评估,不能通过数行数看大家写多少,那就当量来看的话,在 1000 当量每周,三个人平均计算之后,大概是 1500 到 2000 这样一个范围,所以基本上能加 50%。



图为:思码逸 Devchat 统计

我可以问 GPT 什么问题?

下面我们来看跟 GPT 的各种具体交互,那这部分得有一个方法把它组织起来,所以我们以一个完整的实例,看从头到尾中间能用 GPT 去做哪些事情,例子比较有代表性:用 Golang 写一个 API 服务,跑 Kubernetes 里,那我们就从实例开始看, GPT 它能够帮助我们做哪些事情,能做到什么样的程度?


1.询问较为稳定的知识,辅助综合技术选型

需求不完全明确,可寻求一般性建议 ;如果需求明确,可快速提炼信息。


图为:Devchat 提问解答过程


2.搭建脚手架或可运行的初始代码,让万事开头“易”

GPT 能够完整的帮你把操作步骤都写出来,大家可以偷个懒,直接按照它的步骤敲代码就好。


图为:Devchat 提问解答过程


3.向 GPT 反映错误信息,让它帮助 debug

把错误信息给到 GPT,像这样的错误信息以前都读过,然后就能够给你相应的修正。


图为:Devchat 提问解答过程


4.提供上下文,生成各类代码

把上下文给到 GPT,将关系实质说清楚,不需要很复杂,然后它就能够把所做的修改都给出来。



图为:Devchat 提问解答过程


5.IDE 无法支持又不涉及复杂架构设计的代码重构


图为:Devchat 提问解答过程


6.提供目标源代码(和现有测试用例),生成新的测试用例


图为:Devchat 提问解答过程


7.写提交信息(commit message)或者发布说明(release note)


图为:Devchat 提问解答过程


8.理解指定范围内的已有代码,给出具有一定深度的解释和证据



图为:Devchat 提问解答过程

我应该如何向 GPT 提问?

前面分享通过一些实例,一方面展示 GPT 本身的能力,另一方面也分享 GPT 的使用技巧,下面再总结一下如何向 GPT 提问。


1.提示词工程(prompt engineering)

底层信息组合,未必对用户可见,具体问题相关,必须由用户输入。



2.底层信息组合,未必对用户可见



3.具体问题相关,必须由用户输入



人在 GPT 编程中扮演什么角色?

用 GPT,你永远省不了超出你认知范围外的工作。



有了 GPT 之后,人和 GPT 到底是什么样的关系?我觉得上图基本上就概括了我们截至目前所体验下来的一个认知,人其实还是扮演了一个很重要的控制者的角色,基本上拆分起来就是这三个角色。


任务的组织者,你需要把这个任务本身进行比较合理的拆分,定义好这个问题,然后提供合理的上下文,这是人最重要的工作,这件事情目前我们试来试去,你让 GPT 在去做这个层面的问题,往往其实做的不是很好,因为人有很多综合的判断。


过程指导者,你需要不断的给予反馈,调整提示词。往往有些时候你不一定在一轮都能达到好的结果,然后会多轮的去问。


结果验证者就是人最终还是那个主要负责人,你还是要为代码负责并做出判断。

GPT 在软件工程中扮演什么角色?

汇集众多数据源的研发数据平台是智能化的基础。



这里用思码逸 4.0 产品来举例,GQM是做研发效能数据分析的一个基本方法,我们有支持这个方法的一些看板,可以帮助你灵活的去下钻和定位问题。然后也有专家系统,基于组织的极限,得出一些靠谱的、可行动的一些结论。



图为:思码逸产品矩阵图


那今天有了 AI 之后,它带来的变化使得我们对这种非结构化分析的能力增强,其实是把不可能变成了可能。有了 AI 能力加持,结构化数据和非结构化数据都能够盘活,所以在我们自己的这个产品体系当中,包括结构化数据、非结构化数据和代码,其中代码既是结构化数据也是非结构化数据,它们都在数据湖中。我们面向研发的数据湖叫做 DevLake,这个也是我们捐给 Apache 的一个项目。现在其实全球有这个几十万的下载,美国一些非常著名的公司都是在用。


面向技术管理者的是 DevTable 这个产品。DevInsight 能为管理者呈现不同的数据看板,并提供智能的洞察。图中的 DevChat 就是刚刚提到的开源工具,可以在 VS Code,上面免费用。而刚刚在讲 GPT 的示例时的截图,其实都是在 IDE 中的,DevChat 会提供更方便的工作流,帮助我们去更好的去使用 AI 。

我们如何成长为“新程序员”?

我认为在当前的技术趋势下,作为开发者,我们应当像练习写作和编码一样,练习写提示词;作为管理者,我们应该积极倡导和运营,关注研发数据基础设施,统计 GLOC 和代码当量。


直播回顾看这里👇👇👇



用户头像

数据分析驱动研发效能 2022-04-12 加入

思码逸研发效能分析平台,致力于帮助研发团队解决效率、质量和人才三大痛点,提升研发效率与软件工程质量,助力每一位开发者创造更多价值。

评论

发布
暂无评论
“新程序员”必须学会的8个GPT提问技术 | 抢免费注册DevChat名额_思码逸研发效能_InfoQ写作社区