时代背景下的 ChatGPT,到底能帮助开发者做什么呢?

前言

最近脍炙人口的技术 ChatGPT,关注度非常高,网上关于它的文章也一大片,不过很多都是关于体验或者部署的,我们习惯去讨论它的技术、模型、趣味等等,但他能在开发者的工作中带给我们些什么东西呢?

我应该是直接让他帮我修改代码的懒人之一,优化的效果也确实不错,但这个不应该是他的全部功能,我想作为开发者来说,我希望ChatGPT可以帮我做如下的事情:

  • 优化代码质量
  • 简化工作流程

它可以说是完美的实现了这些功能,不得不说,ChatGPT让我感觉到了第四次工业革命的接近,是我们在无数智障AI对话中的一盏明灯!

注册和使用它我就不赘述了,网上也有很多优秀的文章,相信大家可以搞得定!

优化我的代码

不得不说的是,有些开发者的代码确实写的不尽人意[狗头],我也会有同样的情况,偶尔偷懒赶工,写的代码也就随便对付一下,不想细嚼慢咽的话,不妨尝试一下这个需求:

小试牛刀

需求:
存在两个JSON对象,一个名为 originValues(原始对象),一个名为 updatedValues(更新后的对象),对象中可能包含任何值,对比两个对象的值是否发生改变,注意,对象中的值类型可以是任意类型,并且JSON对象有可能是深层嵌套的。

很简单的一个需求,通常可以用递归对比实现,嗯,可是我很急,我写了一份糟糕的代码,看起来不是那么优雅,但其实现了该功能:

function compareJSON(originValues, updatedValues) {if (typeof originValues != 'object' && typeof updatedValues != 'object') {return originValues != updatedValues}for (let key of Object.keys(originValues)) {if (compareJSON(originValues[key], updatedValues[key])) {return true}}return false
}

OK,我们时刻都在生产Bug,给测试小伙伴加绩效,不过不急,我们看看 ChatGPT 对这段代码的看法如何

它写的太复杂了,我想要更简洁的版本,没事,你可以直接告诉它!!

可以看到,我们没考虑到的点,包括对于 nullundefined 的判断,数组的判断它都考虑到了,甚至更惊喜的是,它懂得将我们的函数极致简化,将我们原来的 for 循环:

for (const [key, value] of Object.entries(originValues)) {if (!compareJSON(value, updatedValues[key])) {return false;}
}return true

转换为了 ⬇⬇

return Object.entries(originValues).some(([key, value]) =>!compareJSON(value, updatedValues[key])
);

虽然使用了一些新兴的语法,不过有幸有 Babelcore-js 支持的我们不必担心过多。顺便致敬一下 core-js 的作者,默默无闻的为开源社区工作,瑞思拜!

如果这样你还不满足,那我们可以使用极致的做法,直接将需求描述复制给 ChatGPT

它不仅完美的完成了任务,处理了各种边界值的情况,顺便还给出了测试用例,甚至于写上了注释!出乎意料!如果你觉得他给的代码还是过于复杂,你可以让它再执行精简,不过需要大家自己去探索了!

复杂代码优化

基于篇幅原因,这里不列出太长的代码片段,仅做一些示例,在初学者的代码中,经常会出现各种奇奇怪怪的重复且无意义的代码,我们想让 ChatGPT 帮我们理清楚函数的策略,并写出更好的示例!

function testFunc(a, b, target) {const result = []Object.values(a).forEach(aValue => {result.push(...aValue)})Object.values(b).forEach(bValue => {result.push(...bValue)})if (result.length) {return result.find(r => r.value == target)}
}

这段代码中,我们通过人工分析可得知,ab 是两个对象,对象中的每一个元素值都是数组,作用是从 ab 数组的并集中获取 valuetarget 的元素,整理可知,
大概的数据结构如下所示

// a,b 的类型
const obj = {o1: [{value: '123'}, {value: '456'}],o2: [{value: '345'}, {value: '678'}],
}

如果遇到类似的代码,我可以称之为操作过急!让ChatGPT帮我们优化一下会怎么样呢!

我对于该优化结果还是很满意的,不仅理清楚了思路,而且给了更优的实现方式。对于新语法的问题,我上面已经解释过了,所以不需要过多的担心!

命名优化/注释优化

可以看到,我们上面的那一段糟糕的代码,不仅命名非常难看,而且毫无意义,对于后来的维护者来说,是如灾难一般的存在!所以命名优化与注释优化势在必得!

本来命名优化和注释优化想分开来写,但是为了给大家一些更良好的 ChatGPT 示例,我将这两步合并在了一起,只要描述清晰,他是可以理解你说的话的!

我们接着上面的用例继续试验,拭目以待:

非常不错,希望大家可以用到更复杂的用例上面!

生成代码

生成代码是目前最常用的功能之一,也因此衍生了诸多的插件和开源框架,如 vue-cli 类似的脚手架框架也拥有生成代码的功能,VsCode 代码片段也具有生成代码的属性,不过相对来说,我还是觉得ChatGPT足够灵活,我们一起来看看它的厉害之处吧!

生成 Vue 文件模板

生成 ElementUI 弹窗模板,全屏,有三个底部按钮,保存,删除,取消,内容区域是一个餐厅预定表单

如上的代码都是可以直接使用的,也充分符合了我们的需求,甚至可以更过分一些:

如果需要更厉害的功能,可能需要大家自己去尝试一下喽!

生成文档

根据Vue组件信息生成表格类文档,这里我们直接使用它刚刚生成的基于 ElementUI 的弹窗组件,来帮我们生成组件的使用文档

上面的文档生成是有错误的,不知道大家发现了没有,需要提醒大家的是,ChatGPT 是一个需要调教的程序,你要反复不断地告诉他你的需求,你的想法,他才能理解你最终的意思,所以我们应该继续追问:

生成实体

我们请求接口的时候,接口返回了如下的 JSON 结构,普通的解决方案就是自己手动编写 Typescript 实体,或者借助工具来生成实体文件,我们同样可以借助 ChatGPT 来完成同样的功能,甚至来说可以更优秀!

{"name": "TaroXin""age": 18,"gender": "男","books": ["泰罗凹凸曼生长记", "孙子兵法"],"dept": {"name": "IT部","id": 10086}
}

通过JSON数据格式生成TS实体并写注释!

生成模拟数据

我们已经有了一个 Typescript 实体,让ChatGPT再帮我们返回一些测试数据吧!

生成测试用例

TDD 是一个非常良好的开发习惯,他通常要求我们先完善一部分测试用例,再通过需求来完成对应代码的开发,这个时候,我们需要想一些测试用来用来支撑开发。

我们完全可以借助 ChatGPT 的力量。帮我们省略这一步,如下操作:

需求:写一个减法函数,参数是 ab, 返回 ab 的差,要求不仅要完成减法功能,也要考虑到浮点数引起的计算错误

接下来,让我们借助 ChatGPT 先完善测试用例:

接下来我们就可以根据测试用例去写对应的功能实现了!

生成数据库SQL

生成SQL,也是我们的一个常见需求,只要描述好需求语句,就能得到一个比较完美的结果:

简化工作流程

上面的实践是告诉我们在代码的开发方面,ChatGPT 有很强的可塑性,也有完整的能力帮助我们去实现一些基本的需求。

那么在简化工作流程方面,ChatGPT 又能带给我们哪些惊喜呢!

给我一个最佳的 ESLint 配置

非常常见的需求,网上的文章也是一抓一大把,不做过多的赘述,我们主要看得是,ChatGPT 的可塑性有多强,说实话,我使用该功能的时候确实有一点惊讶,它带给我的惊喜太多了,导致我实在有点把持不住!

替换为 Prettier

这个需求主要是演示 ChatGPT 的上下文关联,正因为有此特性,才能实现更智能的连续对话!

我要一个雪碧图

那么对于我们在项目中非常常用的需求,直接问他实现方式就可以了,多么希望搜索引擎快点集成这些功能啊,New Bing 已经集成了这些功能,有希望成为第一个集成 ChatGPT 并量产化的搜索引擎,期待期待!

我要 GitHub 上的最佳示例

Github 上的内容通常会比较繁杂,需要精准去定位需求是比较艰难的,它同样可以去帮我们进行筛选:

我要从网页通信到Popup

这里是一个比较抽象的问题,需求来源于我前几天需要写的一个浏览器插件中的。

需要从网页中直接点击按钮,通知 Chrome 插件中的 Popup 进行更新

如果你直接搜索在搜索引擎搜索这类问题的话,大概会给你浏览器插件的通信原理,通信方式,并且带一些没什麽意义的示例,需要你有较强的信息分辨能力和耐心,借助 ChatGPT 的话可能是另外一种不同的体验:

我要点赞

给 ChatGPT 的需求描述

怎么样给 ChatGPT 写需求可以让其更精准的响应你的需求?我觉得你需要做到如下几点:

  1. 需要自己先明白自己的需求是什么,并且可以用正常的语句表单出来,人可以理解,ChatGPT 就可以理解
  2. ChatGPT 举例,让他可以参考市面上已有的一些软件或者实现方案,如让其参考 ElementUI 实现文件模板
  3. 善于使用 ChatGPT 的上下文功能,像正常人对话一样和它对话,有时候能获得更好的效果
  4. 交流,交流能使 ChatGPT 更加理解你的需求,强调它做错的地方并纠正是一个很好的使用习惯

探索更多的 ChatGPT 技巧,可以让你在同行业中领先一步,一步领先则占先机,在竞争激烈的技术圈也更容易拥有一席之地,加油!

结语 - ChatGPT版

结语

今天我大家介绍了 ChatGPT 这个现金先进的AI对话技术,相信大家对于它的理解也更近了一步,他能帮助我们做的东西还有很多,我基于能力和想法有限,也不能完整的实现所有内容,所以一切都需要大家自己去探索,去研究,这样也可能可以更丰富 ChatGPT 的知识库,在以后也可以获得更精准的答案,对于技术的发展,我们皆是贡献者!

希望 New Bing 的 Chat 功能尽快上线,让我们在不使用科学上网的条件下也可以使用 ChatGPT

去探索吧,诸位,不知道的东西还多着呢!我是泰罗凹凸曼,下一篇再会!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ChatGPT】科技革命促生互联网时代 ChatGPT浪潮打乱时代布局 人工智能新时代下的发展前景

目录 科技革命促生互联网时代 科技进步伴随着大国崛起 科技革命的发展 互联网时代的到来 ChatGPT浪潮来袭 资本市场当前的热潮 人工智能新时代下我们何去何从 开放注册两个月用户数破亿,ChatGPT的爆火也标志着时代的浪潮将要来袭,由科技革命促生的…

【ChatGPT】是一个危机与机遇并存的时代

ChatGPT是一个危机与机遇并存的时代 前言一、ChatGPT是什么二、ChatGPT的恐怖之处三、ChatGPT真的会取代程序员吗四、ChatGPT对未来的影响 前言 ChatGPT,横空出世,从去年12月,ChatGPT以最快速度(5天)突破百万用户。今年…

ChatGPT时代,别再折腾孩子了

今天这篇完全是从两件事儿有感而发。 昨天在文印店,在复印机上看到装订好的几页纸,我瞥了一眼,是历史知识点: 隋朝大运河分为四段,分别是___ ___ ___ ___,连接了五大河___ ___ ___ ___ ___ ___ 年&#…

前端react如何引入chatgpt实现智能客服

使用背景:react\ts\antd pro\alibaba-chatUI\openai-api 效果图: 1.引入chatUI进行页面开发 chatUI:https://chatui.io/sdk/message import Chat, { Bubble, useMessages } from chatui/core; import chatui/core/dist/index.css; import s…

ChatGPT解答:纯前端文档预览,Vue实现,无需后端,支持Word、Excel、PPT、pdf、文本、图片,附接入demo和文档

ChatGPT解答:纯前端文档预览,Vue实现,无需后端,支持Word、Excel、PPT、pdf、文本、图片,附接入demo和文档 ChatGPTDemo Based on OpenAI API (gpt-3.5-turbo). 纯前端文档预览,Vue实现,无需后…

chatgpt教你练习前端算法

今天想试试chatgpt关于代码算法这一块儿是否好用。 判断质数 上面的代码有一点小问题,当num为2时,返回的结果是错误的,我改进了一下,并优化了一点性能 // 判断是否是素数(质数) function isprime(number)…

ChatGPT发展有多快?

引语:大家好我们是权知星球,开启你独特的知识星际之旅 目录 事件的开始 取代风险清单 一、抓住机会,迎接趋势,积累财富。 二、充分利用它,可以使你的价值得到更大的提升。 三、使用它,可让你的学习和…

玩转ChatGPT:视频制作

一、写在前面 最近,在码深度学习图像识别的相关知识和代码,这一part,看看能否用小Chat搞一个介绍视频。 简单问小Chat: 咒语:我怎么使用你做一个视频?需要配合什么软件生成?? 大意…

变现 起航篇! 手把手交你用chatgpt快速生成视频!

Chatgpt 很多同学都用的非常熟练了,但是都停留在文字阶段,有没有更好玩的用法,可以深度的利用chatgpt做一些事情呢? 今天菜哥就找一个方法可以快速利用chatgpt制作视频,整个过程大概3分钟,非常有趣&#xf…

ChatGPT+MidJourney 3分钟生成你的动画故事

chatgpt是真的火了,chatgpt产生了一个划时代的意义——自chatgpt起,AI是真的要落地了。 chatgpt能做的事情太多了,多到最初开发模型的程序员自己,也没法说得清楚chatgpt都能做啥,似乎只要你能想得到,它都有…

前端实现高仿chatgpt对话页面,3分钟一看就会,你上你也行

自从去年11月份chatgpt出圈之后,他的热度就居高不减,也出现了很多人借助接口开发的国内版本,那么本篇博客就从前端的角度来看看前端如何实现类似chatgpt的对话功能! 最终效果 因为这是我写在一个项目中的,单独提出来…

【ChatGPT】原生JS实现ChatGPT小型Demo

初入前端的小白也可以尝尝鲜 无需科学上网,调用API2D的接口进行连接(也可以换成官方API,均有免费额度) 第一步、注册API2D https://api2d.com/r/187255 使用GitHub或邮箱进行注册登录 ,通过 GitHub 注册的开发者将获…

分享下前端开发如何玩转ChatGPT

去年的时候就跟风注册了一波,其回答问题的准确性和编码能力让我吃惊。不得不说,ChatGPT作为一个新兴的AI产品,和老美的电影里的人工智能有那么一些相像了,甩了三问一不知的小爱、小度和小E不止一条街。 他的🔥出了圈&a…

浅谈ChatGPT取代前端开发工程师

1.ChatGPT 是什么? ChatGPT 是一种基于深度学习的自然语言处理技术,它可以生成高质量的自然语言文本。该技术是由 OpenAI 团队 开发,旨在使计算机能够像人类一样理解和产生自然语言。ChatGPT 使用了深度神经网络和自然语言处理技术,通 过对大…

一文教会你前端开发如何使用chatGPT提高效率

想想chatGPT已经火起来快小一年了,每天看着新闻感叹,好厉害,好想学,闲暇之余翻着相关技术文章,总是一知半解,需要申请各种账号,奈何人懒,且笨还怕上当受骗,估一直拖延至此…

ChatGPT方法论“BORE“

作者 | 陈财猫 我是一个自动驾驶行业的产品经理,也是ChatGPT的第一批用户。第一次遇见ChatGPT是在去年十二月的第一个星期,有一个搞AI的朋友在群里发了一张与ChatGPT的聊天截图,引起了我的兴趣,从此我便一发不可收拾。 刚开始&a…

毕业论文写作与降重神器ChatGPT从零开始使用(超详细)

文章目录 ChatGPT的使用1. 复制论文到输入框2. 提取论文中关键信息3. 重新扩写5. 报错滥用问题,Your account was flagged for potential abuse. If you feel this is an error, please contact us at help.openai.com 最近进行毕业季,又要头疼如何写毕业…

使用ChatGPT进行文章降重

#ChatGPTTOC 使用ChatGPT进行文章降重 在ChatGPT引领的技术爆炸时期,如何使用它对文章进行降重? 推荐一个实测简单有效的方法,只需两步: 简单来说就是先进行关键点提取再进行关键点扩写。 关键点提取 提炼出这段话的关键点和结论…

chatgpt可以降重论文吗-chatgpt降重论文软件

chatgpt可以降重论文吗 ChatGPT是一种自然语言处理技术,可以生成符合指定条件的文本。因此,理论上可以使用ChatGPT来降重论文。但是,需要注意以下几点: 是否符合学术道德要求:学术论文的降重需要严格遵守学术道德准则…

「AIGC」- ChatGPT可以怎么玩?

chatGPT这么火,这几天一番体验之后,除了惊叹,同时也引发了作为程序员的担忧:我的工作是否会被AI取代? 这个问题很难不引起焦虑,但是我们可以换一个角度,可以用这些生成类的工作,做些…