GPT4结对编程实战,鹅厂一线研发真实使用感受

GPT4结对编程实战,鹅厂一线研发真实使用感受

腾小云导读

ChatGPT4比较ChatGPT3.5在逻辑推理才能上有很大的前进,其代码生成才能较为优越。因而作者尝试在工作中某些不涉密的根底工作上,使用ChatGPT4来提高研制效率,简略尝试之后发现其在不少场景是有用的。本文将向咱们展现怎么充分利用 ChatGPT-4 结合结对编程方法,在研制过程中完结明显的效率提高。

重要提示:咱们在做相应尝试的时分,一定要注意信息安全。

看目录,点收藏

1 场景一:正则表达式编写

2 场景二:重构代码

3 场景三:完结事务逻辑

4 场景四:改bug与写单测

5 场景五:取名字

6总结

01、场景一:场景正则表达式编写

我所在的团队负责某可观测渠道的研制。PromQL 是可观测范畴常用的查询言语,Protobuf 这种协议有自带根据正则表达式的参数查看器,因而咱们需要写一个正则表达式,来检测 PromQL 的合法性,以便于尽早的发现不合法的 PromQL,抛出过错、下降底层引擎的压力。

对于这个需求,按个人经验来说我认为至少得花超越一小时编码及单元测试。得翻阅不少 PromQL 手册、正则表达式的手册。咱们试着把这个任务交给 ChatGPT4:

GPT4结对编程实战,鹅厂一线研发真实使用感受

ChatGPT4 写了一个很复杂的表达式,并且告知咱们这个需求是不合理的,完美的语法检测得要完结一个语法分析器,而不是正则表达式。

这儿我完善了我的需求:咱们在接入层的正则应该在乎精确率,忽略召回率,旨在尽早发现一部份过错,而不是全部过错:

GPT4结对编程实战,鹅厂一线研发真实使用感受

这一次的输出看上去还不错。可是我懒、不想仔细看,我又不放心它写。所以我要求它自己写个单测,进行充分的自测:

GPT4结对编程实战,鹅厂一线研发真实使用感受

ChatGPT4 写的单测十分 readability,它还知道表驱动的方法写测试数据。咱们把代码 run 起来:

GPT4结对编程实战,鹅厂一线研发真实使用感受

有一个测试用例没过,咱们能够把这种状况告知 ChatGPT4,让它自己处理:

GPT4结对编程实战,鹅厂一线研发真实使用感受

ChatGPT4 说:要处理这个问题,必须引进更复杂的表达式。可是这不是咱们想要的效果,因而咱们仍是挑选了更简略的正则表达式交给需求,做一些简略的查看,更复杂的查看就交给 promql 语法解析器去做。

所以我花5分钟,发现了需求的不合理,挑选了最契合事务需求的计划,并且还写完了咱们想要的正则表达式。并且代码十分 readability,同时有单测。

02、场景二:重构代码

咱们写代码的过程中,往往会因为忽略,而产出各种「bug 和坏味道」。咱们来试试 ChatGPT4 能帮咱们做什么。下面随机找了一段咱们代码仓库里边的不涉密根底代码,发给ChatGPT4:

packagestrings
import(  
"fmt"  
"regexp"  
"strconv"  
)  
varreOfByte = regexp.MustCompile(`(\d+)([GgMmKkBb]?)`)  
// ParseByteNumber 解析带有容量的字符
funcParseByteNumber(sstring)int64{  
arr := reOfByte.FindAllStringSubmatch(s,-1)  
iflen(arr) <1||len(arr[0]) <3{  
return-1  
}  
n, err := strconv.Atoi(arr[0][1])  
iferr !=nil{  
return-2  
}  
ifn <=0{  
return-3  
}  
switcharr[0][2] {  
case"G","g":  
returnint64(n) * (1024*1024*1024)  
case"M","m":  
returnint64(n) * (1024*1024)  
case"K","k":  
returnint64(n) * (1024)  
case"B","b","":  
returnint64(n)  
default:  
return-4  
}  
}

先让ChatGPT看一眼代码:

GPT4结对编程实战,鹅厂一线研发真实使用感受

ChatGPT4 表明它看懂了。接下来咱们给 ChatGPT4 提一下重构的需求,看看ChatGPT4 的表现:

GPT4结对编程实战,鹅厂一线研发真实使用感受

ChatGPT4 这些优化,使得代码 readability 了许多。特别是过错码返回的模块,本来的代码真是天坑。但同时咱们也发现这个函数完结是不太契合需求的——它只匹配了 substring。例如 XXXX100KBXXX 这类参数也会被过错匹配。咱们把这些状况告知 GPT4,看看它的表现:

GPT4结对编程实战,鹅厂一线研发真实使用感受

这儿咱们看到:

GPT4 不仅仅完结了需求,它还做到了兼容浮点数输入,使得返回的精度更高了。例如 1.5MB 实践是 1536B ,按咱们最初的完结的确会丢失精度,变成1024B。此外,还帮咱们发现了个 BUG。

按例,让它补充一下单测:

GPT4结对编程实战,鹅厂一线研发真实使用感受

通过15分钟的简略沟通,我和 ChatGPT 一同完结了这次代码重构。

03、场景三:完结事务逻辑

尽管要求 chatGPT4 一次性给咱们交给整个完好需求有点过分,但咱们仍然能够把需求拆分成小的逻辑单元给chatGPT完结,并要求它编写单测。

这次,咱们找了咱们项目里边最新的需求来做个试验,让 ChatGPT 帮咱们完结需求——做一个事件的聚合才能。咱们的可观测渠道(伽利略)会收集各个渠道的事件数据,聚合之后以更加可视化的方法给用户展现:

GPT4结对编程实战,鹅厂一线研发真实使用感受

GPT4结对编程实战,鹅厂一线研发真实使用感受

GPT4结对编程实战,鹅厂一线研发真实使用感受

GPT4结对编程实战,鹅厂一线研发真实使用感受

在我不断的追加需求细节之后,chatGPT4交给了一个还算能够的效果。可是这儿咱们发现这段代码有个BUG。当然,我是不会自己着手修正的,让GPT4自己来吧:

GPT4结对编程实战,鹅厂一线研发真实使用感受

其交给的全体代码尽管不算特别清晰,但做一些修正仍是能够用的。当然我觉得这跟我个人没把需求描绘的太清楚也有联系。

04、场景四:改BUG

咱们的可观测渠道(伽利略)支持自定义指标,底层辨认的变量类型是1,1,2,$3这种形式,UI为了用户可读性,是表现为A,B,C。最近出现了一个BUG,A+B+C+D+E+F+G+H+I+J+K装备下去再加载上来之后编程A+B+C+D+E+F+G+H+I+J+B0。

原因K是11,可是前端转码的完结,是for循环遍历处理的,一切处理两位数字有BUG,转回来辨认成了11,可是前端转码的完结,是 for 循环遍历处理的,一切处理两位数字有 BUG,转回来辨认成了1和0:

GPT4结对编程实战,鹅厂一线研发真实使用感受

咱们把这个问题给ChatGPT,看它怎么处理:

GPT4结对编程实战,鹅厂一线研发真实使用感受

===

GPT4结对编程实战,鹅厂一线研发真实使用感受

此外,各位开发者通过上面的比如应该能感受到 GPT4 写单测的才能了。它不管是表驱动、测试用例的结构才能、代码的 readability 才能都十分强!此处咱们不进行打开赘述了。

05、场景五:取名字

咱们知道取变量名和函数名是工程师们最头疼的问题。

这个 ChatGPT4 十分拿手,毕竟这是它的母语呀。例如上面的解析存储容量的函数,它给的主张的确比原名好太多了。

GPT4结对编程实战,鹅厂一线研发真实使用感受

06、总结

说一说我个人关于GPT3和GPT4的使用体会。

当被输入需求,GPT3 仿佛是从网上搜了一些代码组合给我,而 GPT4更能了解我的需求,并且它能根据我的反应不断的优化它给我的代码。全体来说,GPT4 比较历代,在逻辑推理才能上有了很大的前进,它的代码生成才能更是让我十分震撼。

此外,它在视觉表达、跨范畴才能、编程才能等等也有飞跃的前进,此处不打开赘述。如果各位感兴趣,能够在大众号(点这儿进入开发者社区,右边扫码即可进入大众号)后台回复 「GPT-4」,查看完好的测评陈述。了解其才能的边界,将有助于各位更好使用。

尽管 GPT 等工具不能彻底替代工程师编码,但在许多繁琐且不需要交代太多布景的独立工作上,GPT4 仍是完结的十分不错的。作为一个技术人员,尝试下与GPT4结对编程的方法,有可能在某些方面真的能提高本身出产效率。欢迎各位开发者体会。以上是本次共享全部内容,欢迎咱们在评论区共享沟通。

-End-

原创作者|胡宸源

技术责编|胡宸源

GPT4结对编程实战,鹅厂一线研发真实使用感受

你有什么使用ChatGPT的小技巧和心得,欢迎在大众号(点这儿进入开发者社区,右边扫码即可进入大众号)评论区共享评论。咱们将选取1则最有创意的共享,送出腾讯云开发者-文化衫1个(见下图)。5月18日中午12点开奖。

GPT4结对编程实战,鹅厂一线研发真实使用感受

GPT4结对编程实战,鹅厂一线研发真实使用感受

GPT4结对编程实战,鹅厂一线研发真实使用感受

GPT4结对编程实战,鹅厂一线研发真实使用感受

GPT4结对编程实战,鹅厂一线研发真实使用感受

想了解GPT-4完好才能测评(视觉表达、跨范畴才能、编程才能等)?在腾讯云开发者大众号(点这儿进入开发者社区,右边扫码即可进入大众号)后台回复「GPT-4」,查看完好测评陈述。