蛮荆

ChatGPT 初体验

2023-04-03

概述

ChatGPT 从 2 月份热度一直持续到现在,并且在接下来的一段时间内,热度还会持续下去。笔者从 3 月初开始慢慢接触,从最初的在 搜索引擎ChatGPT 之间来回切换并验证, 到目前的简单搜索场景 80% 的时间都是直接用 ChatGPT 的,本文总结下这一个月的时间,笔者用到的最多的 4 个功能。

文档查询

开发者在日常工作者经常需要在服务器或容器内运行各种命令,熟练掌握并记住每个命令的的使用方法显然不现实也没必要,换做以前,常规的做法是通过 搜索引擎 或者直接去 官方文档 查找, 但是这种方式相比 ChatGPT 来说,效率还是低很多。

场景

查询当前服务器上所有的镜像以及每个镜像所有的标签。

如果用 搜索引擎 查找的方式,大概需要这样一个流程:

  • 输入关键词,点击查询
  • 从搜索结果列表中选取页面
  • 点击 3 - 5 个 (平均值) 页面后,查找到自己需要的内容

搜索引擎结果列表页面

但是,如果换做 ChatGPT 的话,只需要一步即可完成上述工作 (前提是 提示词 要设置正确),下面是 ChatGPT 返回的结果:

ChatGPT 查询命令结果

生成单元测试

这个功能可以帮助开发者省去很多编写 重复代码 的工作量。

场景

使用代码实现一个函数,求两个整数的除法运算,要求编程语言为 Golang 并且附带单元测试,下面是 ChatGPT 返回的结果:

函数实现代码

ChatGPT 实现的函数中,基本上边界条件都考虑到了,健壮性很高,代码实现也很 优雅,当然了,这个功能太过常见,应该是 ChatGPT 学习数据里面的基础库了。 不过从这两个简单的例子中,有两个方面启发到了笔者:

  1. 在定制化的业务场景中,通过 ChatGPT 快速建模并给出海量机器学习库训练后的代码,为我们自己的实现提供参考
  2. 通过上传自己的实现代码,通过 ChatGPT 完成代码优化、代码质量检查、自动化测试等工作

单元测试代码

ChatGPT 给出了很 “专业” 的 表驱动测试法

自动化文档

这个功能可以帮助开发者省去很多编写 文档注解 的工作量。

r.GET("/ping", func(c *gin.Context) {
    c.JSON(http.StatusOK, gin.H{
      "message": "pong",
    })
})

上面是一段接口示例代码,要求 ChatGPT 自动为其生成注解,下面是 ChatGPT 返回的结果:

生成文档注解

ChatGPT 不仅生成了注解,而且给出了一套 “傻瓜式” 操作指令,而且针对每个步骤以及生成的注解参数给出了详细的说明。

Github 找项目

如果我们想知道某个细分技术领域下的技术栈或开源项目,可以不用专门去 Github 搜索查找,让 ChatGPT 帮助我们完成即可,毕竟两者的数据是互通的 (因为微软?)。

下面随便举几个小的例子,来看看 ChatGPT 返回的结果:

Github star 最多的 Go Web 框架


Kubernetes commit 总数

这里的数据有些滞后,因为笔者使用的不是最新版本 ChatGPT

小结

以上就是笔者目前经常使用 ChatGPT 辅助开发的 4 个功能,后面如果有更好的工作辅助方式,再总结分享。

转载申请

本作品采用 知识共享署名 4.0 国际许可协议 进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,商业转载请联系作者获得授权。