AIGC|超详细教程提升代码效率,手把手教你如何用AI帮你编程

这篇具有很好参考价值的文章主要介绍了AIGC|超详细教程提升代码效率,手把手教你如何用AI帮你编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、辅助编程

(一)代码生成

二、其他功能

(一)工具手册

(二)源码学习

(三)技术讨论


一、AI辅助编程

作为主要以 JAVA 语言为核心的后端开发者,其实,早些时间我也用过比如 Codota、Tabnine、Github 的 Copilot、阿里的 AI Coding Assistant 等 IDEA 插件,但是我并没有觉得很惊奇,感觉就是生成一些代码片段罢了,直到我接触了 ChatGPT......

(一)代码生成

去年9月份的时候,我接到一个项目,是老项目重构,具体要求就是给你提供入参和出参的结构文档,然后你来写具体的代码,将入参对象 XxxxDTO 解析后调用另外一个服务,然后他再将处理后的结果返回给你,你再解析成 java 对象返回。大概有一百多个接口要实现,其中不乏有入参中有几十个字段的类,写service层真的很累很累。入参结构和对应的类如下图:

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

@Data
publicclassXxxxDTO {

privateStringfiled1;
privateStringfiled2;
privateStringfiled3;
privateStringfiled4;

privateList<XxxxItemDTO> list1;

privateStruct1 struct1;
}

@Data
classXxxxItemDTO {
privateStringlist1_filed1;
privateStringlist1_filed2;
privateStringlist1_filed3;
}

@Data
classStruct1 {
privateStringstruct1_filed1;
privateStringstruct1_filed2;
privateStringstruct1_filed3;
}

最开始,我分析了需求,使用了模板方法模式来实现这个service层的功能,然后每个接口就只需要实现模板类的抽象方法即可,即实现远程调用接口的函数名,入参对象的拼装,出参对象的拼装三个方法的实现。

后来发现,每个人的代码都或多或少的会出现问题,比如代码风格,单词打错,漏写或者错写等问题,而且代码特别多,不好定位问题。于是我就用 java 写了一个工具类,用来生成代码,这样,我们就只用关心入参和出参是否写对就行了,其他的代码就按模板来生成。

其实生成代码的方法有很多,比如通过模板文件生成代码,但是我为了不引入多余的依赖,我直接使用了最笨且最有效的方式,即反射解析类的详情,然后在控制台打印出具体代码。

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

然后我们就顺利的减少了90%的代码编写,只需要将入参出参的类创建好即可。至于定位问题,只要能保证代码生成器没有问题,那我们就可以只通过判断类的创建是否正确就可以了。

之所以要说这个案例,就是为了来引出我是怎么使用 ChatGPT 的。在这个项目快结束的时候,AI火了,我试着使用 ChatGPT 来实现这个代码的生成,结局让我大吃一惊。

我的思路有两个,一个是通过给他模板和出入参对象的方式,让他直接给我生成代码,还有一种就是通过我的调教,让他给我写一个代码生成器出来。

于是我先测试了方案一,那就是把我已经写好的几个接口告诉给他,让他模仿着来给我写出类似的代码,如果哪里有问题,我就会告诉他确实是有问题的,让他进行调整,在经过半个小时的微调后,他已经能够很好地通过我给的类来生成具体的代码了。只要我这个会话还在,那么我就可以随时的回来,让他生成类似的代码。而坏处就是,只能我自己用,别人想用的话,就得自己去训练了。

所以才有了方案二,那就是让他帮我生成一个类似于我前面写的那个工具类,放到项目里,这样,所有开发者就能直接使用工具类来生成代码了。然后我便开始了实践,虽然说,他一开始回复我的代码生成器问题很多,但是我们能通过对话很好的让他进行微调,最后,我也是成功的让他帮我实现了代码生成器的功能,这比我自己手写快了一倍。

其实,我们还能使用 PDF 的 AI工具,直接读取文档,然后连出入参对象也生成出来呢~那可能是99%的代码都已经能自动生成了。(不过这个可能会出错,没有代码生成器稳定)

接下来,我直接演示一个案例,让大家感受下ChatGPT代码生成的威力:

总所周知,mybatis plus 等 ORM 框架是自带代码生成的,一般就是通过定义好数据库的表,然后通过解析这个表来实现代码的生成。但是,大多数人的习惯一般是先定义实体类,然后才去数据库创建对象,而且如果编码人员水平不高的话,很有可能会创建出一些很拉胯的数据表定义,从而导致问题。因此,我通过和 ChatGPT 对话,让他帮我生成了一个代码生成器,来实现通过反射实体类的方式生成建表SQL。(下面案例只展示最简单的实现,关于继承子类,涉及comment等高级操作这里就不演示了,感兴趣的话可以后台联系作者了解演示详情)

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

接下来我们去idea实测一下

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

可以发现,他生成的SQL不是下划线形式,且没有设置非空,我们可以让他修改。

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

再去idea测试下

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

可以看到,基本上已经没有问题了,再自己微调一下代码,后面使用的时候,我们就只需要再根据实际情况,修改一下表字段的范围即可,这样就能省去一个一个复制粘贴的时间了,简直爽歪歪。(如前面提到的,目前这个sql生成器还是有很大问题的,大家可以自己试着完善一下,让他能实现在sql中也生成 comment,继承子类的 ORM 的对象的sql生成,固定字符集,设置默认值,设置数据类型的范围等等,当然我已经调教好我自己的sql生成器了)

像这种经常用的,当然是搞出代码生成器最好了,还有一些简单的,不常用的生成,我们就可以直接让他生成代码,而不是搞出代码生成器了。这里再举最后一个例子:

像有些老数据库,他们没有使用mybatis plus,需要写各种各样的SQL,很麻烦。那么我们就可以解析他的插入方法,生成 ORM 对象,然后通过mybatis plus来快捷使用。

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

不会吧?不会吧?不会还有人在 AI 时代下,还一个个复制粘贴吧。不会吧,不会吧......(

狗头保命)

二、其他功能

(一)工具手册

关于工具手册这点没有太多可说的,我们可以把 ChatGPT 当成工具书,直接向他提问,很多时候,先问 ChatGPT,可能比百度,Google更快。他不仅能够给出你答案,你还可以让他给你演示示例,以下为我自己体验过的一些方向:

  1. 根据你的描述快速生成正则表达式,而不是自己慢慢调试。
  2. 快速生成一些代码示例,比如问他如何合并两个list,如何使用stream流来实现groupBy,如何在springboot框架中动态增强源码。
  3. 生成Ant风格的路径通配符,UEL风格的表达式等,其实这个基本上和①是一个意思(我自己容易记混,用ChatGPT生成确实比每次查资料再写快一些)。

(二)源码学习

最近的时间,我也是一直在研究flowable的源码,但是源码确实有很多地方没有注释,所以,我会拿出那个代码片段去问他,让他作为 flowable 专家来告诉我每一步是干什么的,他也能很聪明的识别出那段代码的作用,甚至知道代码是写在什么位置。

我也会将实体类都发给他,他会帮我把每一个字段的含义和用法告诉我,确实比百度要来的更快,有些东西搜索引擎和官方文档都查不到,但是他能够通过他的智能,判断出字段的作用,这极大地协助了我进行我们项目流程中心服务的代码优化。

而且,你可以在不知道是哪段代码的情况下,直接问他 flowable 这块是怎么实现的,他也能自己分析出来,然后告诉你答案。

(三)技术讨论

技术讨论这一部分,其实可以包括代码review,代码优化等子部分,也可以和他讨论当下一些技术的实现方案,每当我有好的想法时,我也会和他沟通,看看他的意见,下面我做一下展示:

代码分析的简单举例

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

其他举例

很多时候,我们规定了工具类库,但是,有些人不知道有某些工具类,他们就会这种工具类用一下,那种工具类用一下,就显得很不协调,因此,我们可以直接问他,XXX工具类库有无这样的方法。使用该思路,可以让团队的代码更加让人心旷神怡,在一些代码规范要求比较高的地方很好用。

aigc教程,AIGC,AIGC,chatgpt,人工智能,java,辅助编程

由于篇幅要求,我还是尽量精简了一些,主要还是想说明一些我自己的思路,希望对大家有用。

版权声明:本文由神州数码云基地团队整理撰写,若转载请注明出处。

公众号搜索神州数码云基地,了解更多AI相关技术干货。文章来源地址https://www.toymoban.com/news/detail-761460.html

到了这里,关于AIGC|超详细教程提升代码效率,手把手教你如何用AI帮你编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VMware下载到安装Centos7详细教程(手把手教会)

    一、安装前的准备工作 VMware下载官网:VMware 中国 - 交付面向企业的数字化基础 | CN Centos镜像文件:CentOS-7-x86_64-Minimal-2009.iso 二、开始下载安装VMware 1、选择下一步安装  2、选择VMware安装位置 3、完成VMware安装 三、开始安装Centos7 1、打开VMware,点击“创建新的虚拟机”   2、选

    2024年02月09日
    浏览(26)
  • CentOS7(Linux)详细安装教程(手把手图文详解版)

    目录 一、CentOS镜像的下载(准备工作) 1、官网地址:https://www.centos.org/(官网的下载速度会很慢,不推荐) 2、其他镜像源的下载地址(推荐) 3、选择合适版本的镜像进行下载  二、环境的安装 1、打开我们的虚拟机(VMware Workstation),点击文件进行新建 2、选择典型之后,

    2024年02月08日
    浏览(31)
  • SpringBoot 整合 clickhouse和mysql 手把手教程全网最详细

    最近做一个项目 需要 整合mysql clickhouse 多数据源 后台用的是ruoyi框架 需要注意的是官网不建议使用ru.yandex.clickhouse驱动,应该改成com.clickhouse驱动,并且推荐使用0.3.2以上的版本 重点在@DataSource(value = DataSourceType.SLAVE) 注解上 在这里切换从库代表这个类里面的方法都切换成从库

    2024年02月06日
    浏览(17)
  • ChatGPT“保姆级教程”——手把手教你5分钟快速AI智能文字转爆款视频(剪映+百度AIGC平台)

    在这个数字时代,视频已经成为了最流行的内容形式之一。而如何自动将文字转化为引人注目的视频内容呢?本教程将为你提供两个不同的方法:一个是利用ChatGPT和剪映,另一个是利用ChatGPT和百度AIGC平台。无论你是一名内容创作者、社交媒体经营者还是企业营销人员,都会

    2024年02月09日
    浏览(61)
  • 手把手教你在windows使用Docker搭建Minio[详细教程]

    目录 1什么是Minio 2安装Docker 3Docker搭建Minio 4.创建Minio容器并运行 5.进行访问 6安装可能出现的问题         MinIO是一个基于开源的对象存储服务器,MinIO的设计目标是提供高性能、高可用性和高可靠性的对象存储服务。MinIO可以作为一个独立的对象存储服务,也可以在Kuber

    2024年02月12日
    浏览(22)
  • WPS AI 详细体验教程!手把手教你体验AI

    你好,目前 WPS AI 正快速应用至金山办公的产品中。本文档将为你介绍目前可使用的 AI 功能。 如果已获得体验资格,可以下载下方版本体验: . 下载WPS Win客户端 下载WPS 移动版(安卓) 在浏览器使用金山文档 . 如果未获得体验资格,可通过以下3 个步骤获取: 点此访问WPS

    2024年02月16日
    浏览(39)
  • Java零基础手把手保姆级教程_类和对象(超详细)

    1.1 类和对象的理解 客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合 简单理解:类就是对现实事物的一种描述 类的组成 属性:

    2024年02月05日
    浏览(22)
  • 【Docker】手把手教你使用Docker搭建kafka【详细教程】

    目录 前提条件 1.安装Zookeeper 1.1运行ZooKeeper容器 2.运行Kafka容器 2.1启动Kafka容器 3.验证 3.1进入Kafka容器 3.2查看容器状态 3.3查看容器日志 3.4重新启动容器 3.5创建测试主题 1. 安装Docker: 确保你已经在你的Windows机器上安装了Docker。你可以从Docker官方网站下载并安装Docker Desktop。

    2024年02月04日
    浏览(31)
  • 手把手的教你安装PyCharm --Pycharm安装详细教程(一)(非常详细,非常实用)

    Jetbrains家族和Pycharm版本划分: pycharm是Jetbrains家族中的一个明星产品,Jetbrains开发了许多好用的编辑器,包括Java编辑器(IntelliJ IDEA)、JavaScript编辑器(WebStorm)、PHP编辑器(PHPStorm)、Ruby编辑器(RubyMine)、C和C++编辑器(CLion)、.Net编辑器(Rider)、iOS/macOS编辑器(AppCode)

    2024年02月05日
    浏览(19)
  • 【共建开源】手把手教你贡献一个 SeaTunnel PR,超级详细教程!

    Apache SeaTunnel是一个非常易于使用的、超高性能的分布式数据集成平台,支持海量数据的实时同步。每天可稳定高效同步数百亿数据,已被近百家企业投入生产使用。 现在的版本不支持通过jtds的方式链接sqlserver,我们来自己写代码来实现它,并把代码提交给apache seatunnel。 1

    2024年02月09日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包