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

news2024/12/29 10:12:14

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%。

Image

图为:思码逸 Devchat 统计

我可以问GPT什么问题?

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

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

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

Image

图为:Devchat提问解答过程

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

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

Image

图为:Devchat提问解答过程

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

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

Image

图为:Devchat提问解答过程

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

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

Image

图为:Devchat提问解答过程

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

Image

图为:Devchat提问解答过程

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

Image

图为:Devchat提问解答过程

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

Image

图为:Devchat提问解答过程

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

Image

图为:Devchat提问解答过程

我应该如何向 GPT 提问?

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

1.提示词工程(prompt engineering)

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

Image

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

Image

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

Image

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

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

Image

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

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

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

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

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

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

Image

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

Image

图为:思码逸产品矩阵图

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

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

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

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

直播回顾看这里👇👇

Image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1319949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在vue中通过js动态绘制table,并且合并连续相同内容的行

首先是vue代码 <template><div id"body-container"style"position: absolute"><div class"box-container"><div class"lsb-table-box" ><div class"table-container" id"lsb-table"&…

PHP-PhpSpreadsheet导出带图片方法

需求描述 导出表格&#xff0c;项目名称对应项目详情页面二维码。 实现方法 1&#xff0c;先将各个项目生成的二维码存放到了一个指定目录里面&#xff1b; 2&#xff0c;导出数据到excel表格 <?phpuse PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpread…

大气污染扩散模型Calpuff丨Calmet气象模块、Calpost后处理模块、Post Tools后处理工具及绘图工具等

目录 第一章 Calpuff基础知识 第二章 数据预处理 第三章 Calmet气象模块 第四章 Calpuff模块 第五章 Calpost后处理模块 第六章 Post Tools后处理工具及绘图工具 更多应用 Calpuff模型是一种三维非稳态拉格朗日扩散模型&#xff0c;可有效地处理非稳态&#xff08;如&am…

梯形加减速点动功能块(SMART PLC梯形图)

博途PLC的梯形加减速点动功能块算法和源代码介绍请查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/133185836https://rxxw-control.blog.csdn.net/article/details/133185836 1、梯形加减速速度曲线 2、梯形加减速点动功能块 3、接口定义

使用GPU利用ffmpeg-在Pyhton代码中实现视频转码到MP4格式的过程记录【失败告终-原因是显示型号太老不支持】

01-安装Nvida的显卡驱动和CUDA 参考文章 https://blog.csdn.net/wenhao_ir/article/details/125253533 进行安装。 02-下载ffmpeg的可执行文件 下载ffmpeg的Windows可执行文件&#xff0c;下载页面&#xff1a; https://www.gyan.dev/ffmpeg/builds/#release-builds 我在202…

【MyBatis Plus】逻辑删除、分页、乐观锁的应用及讲解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《MyBatis-Plus》。&#x1f3af;&#x1f3af; &am…

Pipeline 助您轻松驾驭海量数据!

前言 数据治理在当今信息时代变得至关重要。随着数据量的不断增长和多样化&#xff0c;组织需要有效地管理和利用这些数据&#xff0c;以支持业务决策和创新发展。不论是做数据分析还是数据解析&#xff0c;利用 Pipeline 可以帮助组织实现数据治理的自动化和规范化&#xff1…

Ubuntu 20.04 prometheus prometheus-process-exporter

prometheus-process-exporter 监控系统架构方案 https://blog.csdn.net/weixin_45801289/article/details/126922395 sudo apt install prometheus-process-exporter prometheus-process-exporter_0.4.0ds-1_amd64.deb service prometheus-process-exporter status netstat …

【数据结构和算法】移动零

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;双指针 2.2 方法二&#xff1a;两次遍历 2.3 方法三&#xff1a;一次遍历 三、…

vue_域名部署无法访问后端

前言 目前部署的比较另类&#xff0c;因为服务器为windows&#xff0c;目前还不是很会nginx&#xff0c;所以现在就只能在服务器上安装nodejs&#xff0c;然后直接使用npm run dev命令行的方式运行项目 遇到的坑 使用ip访问前端的时候&#xff0c;就可以访问&#xff0c;但是…

户外用品网站搭建的效果如何

近几年户外运动成为热门话题&#xff0c;户外装备品牌也逐渐出现在人们眼前&#xff0c;新老企业都在用自己的方式提升品牌形象&#xff0c;包括帐篷、登山用具、钓鱼品、滑雪品等&#xff0c;在市场都有很高需求。 而在实际经营中&#xff0c;户外用品品牌也面临一些难题&…

【postgresql】PSQLException: An I/O error occurred while sending to the backend.

org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend. 发送到后端时发生I/O错误。 java.io.IOException: Tried to send an out-of-range integer as a 2-byte value: 34284 尝试将超出范围的整数作为2字节值发送&#xff1a;34284 pos…

基于单片机的视力保护及身姿矫正器设计(论文+源码)

1. 系统设计 在本次设计中&#xff0c;其系统整个框图如图2-1所示。其主要的核心控制模块由超声波模块&#xff0c;光敏电阻&#xff0c;按键模块&#xff0c;复位电路&#xff0c;红外模块&#xff0c;LCD显示等组成。其包括自动模式&#xff0c;手动模式。自动模式&#xff…

天猫数据分析-天猫查数据软件-11月天猫平台饮料市场品牌及店铺销量销额数据分析

今年以来&#xff0c;饮料是快消品行业中少数保持稳定增长的品类之一。 11月份&#xff0c;饮料市场同样呈现较好的增长态势。根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年11月份&#xff0c;天猫平台上饮料市场的销量为2700万&#xff0c;环比增长约42%&#xf…

Linux本地搭建StackEdit Markdown编辑器结合内网穿透实现远程访问

文章目录 1. docker部署Stackedit2. 本地访问3. Linux 安装cpolar4. 配置Stackedit公网访问地址5. 公网远程访问Stackedit6. 固定Stackedit公网地址 StackEdit是一个受欢迎的Markdown编辑器&#xff0c;在GitHub上拥有20.7k Star&#xff01;&#xff0c;它支持将Markdown笔记保…

CentOS7安装Docker及添加阿里云镜像加速详细教程

Docker官方安装教程网站&#xff1a;Install Docker Engine on CentOS | Docker Docs 具体流程如下&#xff1a; 1.确定你是CentOS7及以上版本 cat /etc/redhat-release 2.yum安装gcc相关 yum -y install gcc yum -y install gcc-c 3.安装需要的软件包 3.1安装docker引擎…

Python:发送qq邮箱只需几行代码轻松搞定

一、前言 在日常业务中&#xff0c;经常会遇到需要程序发邮件提醒自己的情况。例如数据异常、工作任务进度完成情况、今日天气、今日股票行情等各种场景。如果引入发送邮箱以推进预期进度的功能&#xff0c;那将大大优化我们的日常。我也是近期在写国债逆回购的监控脚本时想起…

chatchat知识库对话接口修改成sse流式输出方案

在chatchat结合chatGLM搭建的私有化知识库中&#xff0c;使用原生的webUI画面是可以流式输出的&#xff0c;而直接调用api接口&#xff0c;不管stream为true还是false&#xff0c;都是阻塞式输出的&#xff0c;也就是一口气返回给接口。 我们的解决方案是修改StreamingRespons…

32位MCU极致性价比高速风筒方案特点--【其利天下技术】

近年来&#xff0c;伴随着人们消费升级及现代工业技术水平的提升&#xff0c;电吹风市场已经步入了绿色节能、高效多功能化的发展阶段。人们对电吹风的需求和要求都在不断增加。然而&#xff0c;传统电吹风采用交流电机&#xff0c;使用寿命有限&#xff0c;维护不方便&#xf…

C++1114新标准——Lambdas,decltype

系列文章目录 C11&14新标准——Variadic templates&#xff08;数量不定的模板参数&#xff09; C11&14新标准——Uniform Initialization&#xff08;统一初始化&#xff09;、Initializer_list&#xff08;初始化列表&#xff09;、explicit C11&14新标准—— d…