使用ChatGPT帮助我们编码的10种场景

文章目录

    • 1、技术搜索
    • 2、生成常用工具函数
    • 3、帮助解读代码
    • 4、添加注释
    • 5、优化代码
    • 6、Vue2 转 Vue3
    • 7、Vue 转 React
    • 8、补充 TypeScript 类型
    • 9、生成文档
    • 10、工具配置
    • 总结

ChatGPT 的出现,彻底改变的很多代码开发的方式,特别是通用型的代码,使用它来帮助我们,很大程度上可以提升我们写代码的效率和质量。
本博主工作中主要进行前端方向的项目开发,本文将直接聚焦在代码编写相关的具体场景上。通过日常工作实践中发现的能够使用 ChatGPT 辅助我们编码的示例,一一列举了大概10种编码总做中可能出现的情形。大家有兴趣的可以了解一下,在条件合适的情况下,通过 ChatGPT 来提升写代码的速度,节省下摸鱼的时间,一举多得的好事。

1、技术搜索

这个场景是 ChatGPT 最常用的,也是为什么很多人鼓吹 ChatGPT 会干掉搜索引擎的原因之一。
在开发工作中,通过它来搜索各种技术知识,也是目前在开发者中较流行的运用了,这里就简单举个例子,比如我想知道GIF格式的压缩算法:

在这里插入图片描述
还有,打打嘴仗,问它 Vue和React,哪个更好?

在这里插入图片描述
看上去,在我这里的回答,是 Vue 更好一些,可能与我之前问过一些 Vue 的问题有关吧…

2、生成常用工具函数

ChatGPT 中生成前端代码,是相对方便的事情,比如我们工作中常用的一些工具函数,对于初学者还是非常有用的。

如下图所示,生成一个图片读取的函数:

在这里插入图片描述
这段代码使用 FileReader 来读取文件信息,生成图像的 Base64 字符串,然后通过 Image 对象加载。

接下来改造这段代码,因为 Base64 字符串的缺点,我们不要使用 base64,就会换一种方式:

在这里插入图片描述
上图,可以看到这里就换成了 BlobURL 的方式来转换图片。

当前前端开发中,使用 TypeScript 越来越流行,那我们也能给 ChatGPT 提要求,使用 TypeScript

在这里插入图片描述
如上所示,在定义函数时,增加了类型。

3、帮助解读代码

工作中,如果我们对于某段代码不是很理解,也可以借助 ChatGPT 的帮助,通过它对代码的解读,我们也能更快的理解代码。
如下图所示,我截取了 fabric.js 库中开头的一段代码,发送到 ChatGPT 对话框,得到它的解读:

在这里插入图片描述
几乎对代码逐行进行了解读。
下面再看一个例子,一段 Vue 中的 HTML 代码:

在这里插入图片描述
也能每一步都解读出来,并且也指出了事一个Vue的单文件组件。

4、添加注释

ChatGPT 对代码的理解已经很牛了,添加注释肯定也是小菜一碟,特别是那些通用的注释,如下图,给上面的 fabric.js 代码添加注释:

在这里插入图片描述
几乎每行代码都加了注释,真的已经很完善了。

当然,对于那些偏业务性的代码,注释还是得自己好好写。

5、优化代码

对代码进行重构优化,是我们项目开发中经常要做的事情,通过 ChatGPT 仍然可以在一定程度上改善我们的代码。
如下代码,用于获取当天的月日年字符串:

export function getTodayString () {
  const dt = new Date()
  const day = dt.getDate()
  const month = dt.getMonth() + 1
  const year = dt.getFullYear()
  return `${month > 9 ? month : '0' + month}.${day > 9 ? day : '0' + day}.${year}`
}

接下来,让 ChatGPT 帮我们优化一下代码,直接问它怎么优化,会输出结果:

在这里插入图片描述
除了给出代码,还列出了具体的优化建议,使用什么方法,起到什么作用,非常详细,不管是优化代码还是学习技术知识,都能带来好处。

6、Vue2 转 Vue3

对代码进行修改,如将一段 Vue2 代码转为 Vue3 的写法,只需要输入 帮我把这段代码转为Vue3,然后贴出代码,就可以自动转换出来:

在这里插入图片描述

这里 Vue 代码,并没有高亮,可能还不支持 Vue 的语法高亮,而 JavaScriptTypeScript 等则都支持代码高亮。

除了代码转换以外,还会针对贴出的代码,简要描述在 Vue3 中的差异:

需要注意的是:
1. Vue3 中没有了 inject 和 $bus,改为了 inject 和 eventBus。
2. 由于 Vue3 引入了 Composition API,所以 computed 和 methods 都被改为了 setup() 中的函数。同时,changeBrush() 中不再需要 $event 参数。
3. 在 Vue3 中,minV 属性改为了 min-v。

除此外,我们还可以将Vue代码转为纯Javascript实现:

在这里插入图片描述
给出提示语,就能将当前的 Vue 单文件组件,转成一个html文件,使用纯 JavaScript
当然,对于代码中的一些业务性质、或者 Vue 复杂指令的一些代码,则需要自动手动添加了。

7、Vue 转 React

上面的示例是将 Vue 从2转为3或纯JS实现的,下面我们如果是转成另一个框架,如 React,看看效果如何:

在这里插入图片描述
很快就完成了我们的需求,但在这里 ChatGPT 直接使用了老版本的组件方式 Component,更进一步的话,让它使用最新版本的重新生成,结果如下所示:

在这里插入图片描述
代码中使用 useStateuseEffect 和函数组件的方式还是比较快速的,不过最新的 React 版本已经到了 18.2.0,这里存在大概一年多的时间差。

8、补充 TypeScript 类型

上面介绍工具函数的时候,已经尝试过给代码增加 TypeScript 类型,而添加TS类型的实际用处还是很大的,对于不想写类型声明的同学来说,完全可以全部交给 ChatGPT 来完成。
如我们需要将上文的 React 组件增加TS类型,很快就能输出:

在这里插入图片描述
更多复杂的代码,都可以在 ChatGPT 中自动补齐TS类型声明,对于不会或懒得写的人来说,在这里自动生成也不错。

在给代码添加TS类型以外,也能较好的修改已有的TS类型,如代码如果使用了很多any,可以进行校正。
如下代码所示,一段简单的前端 WebSocket 的操作代码,对于其中几个参数,都是用 any 类型:

export const connectPromise = (socketUrl: string, info?: any, data?: any) => {
  return new Promise((resolve, reject) => {
    const singleWS: any = new WebSocket(socketUrl)
    singleWS.binaryType = 'arraybuffer'

    singleWS.onopen = () => {
      if (info) {
        singleWS.send(info)
        data && singleWS.send(data)
      }
    }
    singleWS.onmessage = (message: any) => {
      if (message && message.data) {
        resolve(message.data)
      } else {
        reject('empty')
      }
    }
    singleWS.onerror = (err: any) => {
      reject(err)
      singleWS.close()
    }
  })
}

这在正式开发中显然是不太合适的,一般都会避免使用 any 类型,把它发给 ChatGPT,就能够帮我们修正:

export const connectPromise = (socketUrl: string, info?: string | ArrayBuffer, data?: string | ArrayBuffer): Promise<ArrayBuffer> =>  {
  return new Promise((resolve, reject) => {
    const singleWS: WebSocket = new WebSocket(socketUrl)
    singleWS.binaryType = 'arraybuffer'

    singleWS.onopen = () => {
      if (info) {
        singleWS.send(info)
        data && singleWS.send(data)
      }
    }
    singleWS.onmessage = (message: MessageEvent) => {
      if (message && message.data) {
        resolve(message.data)
      } else {
        reject('empty')
      }
    }
    singleWS.onerror = (err: Event) => {
      reject(err)
      singleWS.close()
    }
  })
}

以上代码,就是 ChatGPT 修改后的,将 any 类型全部替换,并且可以直接在项目中运行。

当然,ChatGPT在类型补充上也不是每次都完全正确,对于一些复杂的或非通用型的类型,也会存在问题,需要进行手动调整纠正。

9、生成文档

技术文档也是开发中不可少的一环,通过使用 ChatGPT 可以为我们创建各种不同的文档模板,如项目的 README.md 说明文档、RESTful API 接口文档等等。
除了各种文档模板,也可以直接给它一段代码,帮助生成相应的文档,如果接口代码的文档:

在这里插入图片描述
当然,图中可看出文档比较粗糙,需要二次加工。

10、工具配置

在前端开发中,设置构建、部署相关的配置文件,也是经常碰到的,很多人也都储备了一套自己的工具配置文件模板,但对于初学者或者没有储备的同学,也可以尝试在 ChatGPT 中生成。

如下,配置 tsconfig 文件:

在这里插入图片描述
再比如,nginx 配置:

在这里插入图片描述
如果给 ChatGPT 足够多的提示指令,还是能够比较方便和有效的生成我们想要的内容的。

总结

以上只是平时可能会用到的一些场景,也许还有很多其他各种使用方式,用来帮助我们更好的编写代码,完全可以把 ChatGPT 当做编码助手,帮助我们更高效的完成任务。
不过,我们也需要注意,ChatGPT 虽然可以比较正确的结果————很多代码能直接运行,但多数时候我们需要进行一定的审核和验证,切忌盲目复制粘贴,尽量确保不会出现问题。
让它成为助手,而不是完全依赖它。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于公私密钥的单点登录

目前已知的单点登陆方式有&#xff1a; 多个系统集群 建立一个SSO认证中心&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统。 1、可以通过session广播机制实现&#xff1a;在一个集群中的一个模块登录后&#xff0c;然后把这个session复制n份&#xff0c;发…

JUC-01 线程的创建和状态转换

本次我们主要讲三个问题 线程是什么&#xff1f;线程有哪些状态&#xff1f;各状态间的转换了解吗&#xff1f;创建线程的3种方法你都了解吗&#xff1f; 1. 线程是什么&#xff1f;&#xff08;了解即可&#xff09; 进程&#xff1a; 进程是一个具有一定独立功能的程序在一…

计算机网络考试复习——第一章 1.7

1.7 计算机网络体系结构 两台计算机要互相传送文件需解决很多问题: (1) 必须有一条传送数据的通路。 (2) 发起方必须激活通路。 (3) 要告诉网络如何识别接收方。 (4) 发起方要清楚对方是否已开机&#xff0c;且与网络连接正常。 (5) 发起方要清楚对方是否准备好接收和存储文件…

数据结构——栈与队列相关题目

数据结构——栈与队列相关题目232. 用栈实现队列思路225. 用队列实现栈1.两个队列实现栈2.一个队列实现栈20. 有效的括号思路1047. 删除字符串中的所有相邻重复项思路155. 最小栈150. 逆波兰表达式求值思路239. 滑动窗口最大值单调队列347. 前 K 个高频元素思路232. 用栈实现队…

2023版Postman接口测试使用全指南(原来使用 Postman测试API接口如此简单)

下面是一篇详细介绍postman接口测试的文章&#xff0c;如果文章内容不太明白的话&#xff0c; 我建议看看视频版本&#xff0c;更加清洗&#xff0c;更加直观&#xff01; 最详细的postman接口测试实战教程_哔哩哔哩_bilibili最详细的postman接口测试实战教程共计129条视频&am…

ToBeWritten之ARM汇编基础铺垫

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…

FPGA解码4line MIPI视频 IMX291/IMX290摄像头采集 提供工程源码和技术支持

目录1、前言2、Xilinx官方主推的MIPI解码方案3、我已有的MIPI解码方案4、纯Vhdl代码解码MIPI5、vivado工程介绍6、上板调试验证7、福利&#xff1a;工程代码的获取1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了&#xff0c;MIPI解码难度之高&…

关键词采集软件在SEO优化中的应用与效果

搜索引擎的优化被广泛认为是提高网站排名和在线可见性的重要方法之一。SEO人员需要进行大量的工作以确保网站的内容和标签可以被搜索引擎正确地解析和索引。在这项任务中&#xff0c;使用搜索引擎关键词采集软件可以帮助SEO人员完成许多繁琐的任务并简化他们的工作流程。在本文…

Linux 基础IO(Input与output)学习

进程间通信&#xff1a;讲的是操作系统为用户提供的几种进程间的通信方式概念&#xff1a;进程间通信其实就是多个进程之间进行数据交互问题&#xff1a;进程间通信为什么不能直接进行数据交互&#xff0c;需要使用系统提供的方式&#xff1f;原因&#xff1a;进程之间是具有独…

电动力学问题中的Matlab可视化

电磁场的经典描述 小说一则 电磁场的经典描述就是没有啥玩意量子力学的经典电动力学下对电磁场的描述,以后有空写个科幻小说,写啥呢,就写有天张三遇见了一个外星人,外星人来自这样一个星球,星球上的物质密度特别低,导致外星人的测量会明显的影响物质的运动,外星人不能同时得到…

JNI 调用

简介 JNI是Java Native Interface的缩写&#xff0c;通过使用 Java本地接口书写程序&#xff0c;可以确保代码在不同的平台上方便移植。从Java1.1开始&#xff0c;JNI标准成为java平台的一部分&#xff0c;它允许Java代码和其他语言写的代码进行交互。 本地代码与 Java 虚拟机…

【ChatGPT】ChatGPT-5 强到什么地步?

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 ChatGPT-5 强到什么地步&#xff1f; 技术 深度学习模型的升级 更好的预测能力 自适应学习能力 特点 语言理解能力更强 自我修正和优化 更广泛的应用领域 应用 对话系统 智能写作…

【机器学习】吴恩达机器学习Deeplearning.ai

机器学习已经强大到可以独立成为人工智能的一个子领域。 可以通过对机器编程实现比如执行网络搜索、理解人类语言、通过x光诊断疾病&#xff0c;或制造自动驾驶汽车。 机器学习定义 一般来说&#xff0c;给一个算法学习的机会越多&#xff0c;它的表现就越好。 机器学习的两种…

阿里云5、6代云服务器实例免费升级至第7代(不限次数)

简介&#xff1a; 阿里云推出云服务器实例免费升级至第7代优惠活动&#xff0c;第5、&#xff16;代云服务器&#xff0c;可享受实例部分免费升级至第7代实例&#xff0c;让你的云服务器拥有更高的安全、存储、网络等性能。 阿里云服务器升级有优惠吗&#xff1f;当然是有的&am…

长安信托:拥抱数字信托,探索多项目管理新路径

长安信托&#xff1a;公司使用 ONES 已经 2 年了。ONES 最大的优势是能够有效串联我司信息科技研发过程中的各个环节&#xff0c;从需求管理到研发任务跟踪&#xff0c;再到测试管理&#xff0c;ONES 能明确地展示出业务部门从需求提出到研发上线的全链路&#xff0c;体现信息科…

免费ChatGPT接入-国内怎么玩chatGPT

免费ChatGPT中文版 OpenAI 的 GPT 模型目前并不提供中文版的免费使用&#xff0c;但是有许多机器学习平台和第三方服务提供商也提供了基于 GPT 技术的中文版模型和 API。下面是一些常见的免费中文版 ChatGPT&#xff1a; Hugging Face&#xff1a;Hugging Face 是一个开源社区…

后缀为whl的文件是什么?如何安装whl文件?学习一下(22)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 了解并使用Pyhton的库安装包文件whl。 什么是whl文件 whl格式本质上是一个压缩包&#xff0c;里面包含了py文件&am…

chatGPA的主要功能-chatGPT深度分析

ChatGPT功能介绍 ChatGPT是基于深度学习技术的自然语言处理算法&#xff0c;其主要用途是生成自然语言文本&#xff0c;能够应用于多个自然语言处理任务。以下是其主要功能介绍&#xff1a; 文本生成&#xff1a;ChatGPT能够生成高质量的自然语言文本&#xff0c;可以应用于大…

linux常用系统管理经验谈

Lab1 硬件和安装 步骤一&#xff1a;准备计算机 任务&#xff1a; 使用Red Hat Linux光盘启动系统 在启动时进入BIOS界面 设置系统启动顺序为A&#xff0c;CDROM&#xff0c;C 修改其他任何推荐的设置 保存并退出BIOS设置 步骤二&#xff1a;使用Anaconda&#xff08;图形模式…

二十分钟带你了解JVM性能调优与实战进阶

ZGC 诞生原因 Java生态非常强大&#xff0c;但还不够&#xff0c;有些场景仍处于劣势&#xff0c;而ZGC的出现可以让Java语言抢占其他语言的某些特定领域市场。比如 谷歌主导的Android手机系统显示卡顿。证券交易市场&#xff0c;实时性要求非常高&#xff0c;目前主要是C主…