前言
最近脍炙人口的技术 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
对这段代码的看法如何
它写的太复杂了,我想要更简洁的版本,没事,你可以直接告诉它!!
可以看到,我们没考虑到的点,包括对于 null
和 undefined
的判断,数组的判断它都考虑到了,甚至更惊喜的是,它懂得将我们的函数极致简化,将我们原来的 for
循环: