作者:京东科技 赵龙波

“贾维斯,你在吗?”

“随时待命,先生。”

类似《钢铁侠》里的人工智能助理贾维斯,ChatGPT或许是你的随时待命的助手。ChatGPT在大量文本数据上进行了培训,这使它能够理解单词和短语的上下文和含义,并生成高度相关的上下文响应。能完成撰写邮件、视频脚本、文案、翻译、代码等任务,作为一名开发人员,尝试探索一下chatGpt对我们的工作能有哪些帮助。 (由于 ChatGPT对国内禁止访问,以下是通过调用openAI的api接口实现的对话,所以界面与原生有所不同。网上很多种实现方式,不多赘述。)

先来看看chatGPT自己的回答:

每次回答都不一样,但都差不多的意思,这个回答比较抽象,如果再具体一些就好了。下面列出了一些使用场景:

回答一些基础的编程或者计算机问题

这应该对AI来说是小儿科了,但确是比较常用的功能,不懂就问。

生成正则表达式

这两个答案都是准确的。这样使用起来确实比搜索要方便很多

编写脚本

如:shell脚本

这个脚本是正确的,再来一个复杂的:

为了验证这个脚本是否正确,去服务器上运行了一下,是没有问题的,并且nginx路径就是nginx默认的文件夹路径,不用更改:

写sql语句也不在话下:

我这里问的比较口语化,且写错了标点符号,它还是理解了。

shell脚本可能是AI使用它海量内容查询到类似的然后仿造的,但sql语句是它真的理解了问题并结合实际语法创造出来的。

文字命名格式转换:

文字格式转换有成熟的各种实现,这也算一种途径。

生成代码

比如:写一个简单获取每月最后一天的公共方法

上面实现不难,再尝试写一个包含多个方法的工具类,并一次生成

不仅给出了代码,还把注释也打上了

甚至可以约定使用的java类版本

如果你对这个写法不满意,同一个问题再次发问,还能给出其他写法:

项目中经常用到各种各样的工具类,也许下次试试直接说出你要的功能,让AI给你写出来吧

起名字

如:给某个类命名

你正在看的这篇文章标题也是chatGpt起的,这是经常头疼类名应该怎么起的人的福音。

生成伪代码:

在技术方案设计或者讨论的时候如果需要写一些代码,可以尝试。

代码优化

如:代码bug修复:

甚至帮你把代码重写

依然可以,如果你想把代码用lambda重写,让它来试试。

技术资料翻译:

这是截取的G1英文文档的一段描述,这里面包含了一些G1垃圾回收器的参数信息,翻译时这些应该保留为英文,新生代和老年代这些特有名词也最好用英文表示才更专业,这些细节它都做到了,且它的翻译与中文版本的差别不大,几乎没有错误。

其他功能

如: 算法实现:

以上测试数据都比较偏简单,但依然能看出它的潜力。纯业务场景代码需要结合实际项目,相信如果让它学习训练某一个项目之后,或者他真的可以写出一些业务功能的代码来。google等一系公司也在研究AI编程可能行,足以说明其潜力。

可以在idea里安装NexChatGPT插件,方便随时调用查询。 如果有更好的使用场景idea,欢迎留言讨论。

ps,最后一问:

ChatGPT:让程序开发更轻松的更多相关文章

  1. DTSE Tech Talk丨第3期:解密数据隔离方案,让SaaS应用开发更轻松

    摘要:解读云上前沿技术,畅聊开发应用实践.专家团队授课,答疑解惑,助力开发者使用华为云开放能力进行应用构建.技术创新. 围绕当下许多企业青睐的SaaS应用开发,华为云DTSE技术布道师李良龙为大家带来 ...

  2. So Easy!让开发人员更轻松的工具和资源

    这篇文章给大家分享让开发人员生活更轻松的免费工具和资源.所以,如果你正在寻找一些为迅速解决每天碰到的设计和开发问题的工具和资源,不要再观望,试试这些工具吧.这些奇妙的工具不仅会加快您的生产,也让你的工 ...

  3. 技术分享:Dapr,让开发人员更轻松地构建微服务应用

    最近一直在学习微服务相关的技术.微服务架构已成为构建云原生应用程序的标准,并且可以预见,到2022年,将有90%的新应用程序采用微服务架构.微服务架构提供了令人信服的好处,包括可伸缩性,松散的服务耦合 ...

  4. 10款让WEB前端开发人员更轻松的实用工具

    这篇文章介绍10款让Web前端开发人员生活更轻松的实用工具.每个Web开发人员都有自己的工具箱,这样工作中碰到的每个问题都有一个好的解决方案供选择. 对于每一项工作,开发人员需要特定的辅助工具,所以如 ...

  5. 十款让 Web 前端开发人员更轻松的实用工具

    这篇文章介绍十款让 Web 前端开发人员生活更轻松的实用工具.每个 Web 开发人员都有自己的工具箱,这样工作中碰到的每个问题都有一个好的解决方案供选择. 对于每一项工作,开发人员需要特定的辅助工具, ...

  6. 【转】十款让 Web 前端开发人员更轻松的实用工具

    这篇文章介绍十款让 Web 前端开发人员生活更轻松的实用工具.每个 Web 开发人员都有自己的工具箱,这样工作中碰到的每个问题都有一个好的解决方案供选择. 对于每一项工作,开发人员需要特定的辅助工具, ...

  7. 【纯·技术干货】更 App 化的小程序开发

    2018 年 10 月13 日,由又拍云和知晓云联合主办的 Open Talk 丨2018 小程序开发者沙龙系列活动广州站拉开帷幕,糗事百科前端负责人宋航在沙龙上做了<更App化的小程序开发&g ...

  8. 人生维艰,何不利用开源.NET函数库让工作更轻松

    今天推荐的文章会谈到一些让你工作更轻松的开源.NET函数库. 即使业界有时候认为.NET开源社区不太健康,很多开发团队都更多依赖于微软提供的东西来开发.不过最近在.NET世界中还是诞生了一些优秀和有意 ...

  9. linux一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书)

    一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书) --------------------------目录-网络无关篇-目录-------------------------- 0001 修 ...

  10. 黑马程序员:轻松精通Java学习路线连载1-基础篇!

    编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...

随机推荐

  1. 【JAVA】详解在JAVA中int与Integer的区别以及背后的原因。

    区别 首先我们要明确,这两点之间有什么区别? 主要有以下几点: 数据类型不同:int是基础数据类型,而 Integer是包装数据类型: 默认值不同:int的默认值是 0,而 Integer的默认值是 ...

  2. Mp3文件标签信息读取和写入(Kotlin)

    原文:Mp3文件标签信息读取和写入(Kotlin) - Stars-One的杂货小窝 最近准备抽空完善了自己的星之小说下载器(JavaFx应用 ),发现下载下来的mp3文件没有对应的标签 也是了解可以 ...

  3. wiki搭建详细过程及步骤

    wiki搭建详细过程及步骤 1.查看yum库中jdk的版本 2.选择java-1.8.0安装 3.配置环境变量 4.环境变量生效 5.查看jdk是否安装成功 6.启动mysql服务 7.下载confl ...

  4. 网络编程:软件开发架构、架构总结、网络编程前戏、OSI七层协议简介、OSI七层协议之物理连接层、数据链路层、网络相关专业名词、OSI七层协议之网络层

    目录 软件开发架构 架构总结 网络编程前戏 OSI七层协议简介 OSI七层协议之物理连接层 OSI七层协议之数据链路层 网络相关专业名词 OSI七层协议之网络层 OSI七层协议之传输层 软件开发架构 ...

  5. Bugku login1

    打开是个普普通通的登录界面,盲猜是注入题,先看看源码吧,没找到什么有用的信息,那就先注册试试 注册admin就已经存在,可能待会就爆破admin的密码也可能,因为没有验证嘛 试试注册其他的 登录发现他 ...

  6. 原来 GitHub 不仅能学代码,还有这些东西

    我是风筝,公众号「古时的风筝」,专注于 Java技术 及周边生态. 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面. 大家好,我是风筝. 今天介绍几 ...

  7. Mybatis——Plus :表与表之间的关系:1对多和多对一

    Mybatis--plus我大致整理出两种方案: 第一种:第三方mybatis-plus 插件,注解式开发 Mybatis-Plus-Relation ( mprelation ) : mybatis ...

  8. Google地图瓦片

    1.Web墨卡托空间参考 1.1.什么是Web墨卡托 墨卡托投影,又称正轴等角圆柱投影,由荷兰地图学家墨卡托(G.Mercator)于1569年创拟.假设地球被套在一个圆柱中,赤道与圆柱相切,然后在地 ...

  9. day10 Test

    public class Test{ public static void main(String[] args){ fun1(); } /**1. * 有2个数组,第一个数组内容为:[黑龙江省,浙江 ...

  10. js day04 综合案例秒数计算

    <script>         //用户输入总秒数         let second = +prompt('请输入总秒数:')         //计算时分秒         fun ...