🌓
搜索
 找回密码
 立即注册

ChatGPT体验,能为后端开发做什么?

admin 2023-3-13 11:37:56 69793

ChatGPT作为人工智能技术都火了一段时间,各种评价都有,有说好的,也有说不好的,更有说ChatGPT要代替程序员工作(程序员要失业了),在网上引起了一大波讨论。

从我使用ChatGPT的过程中,我觉得ChatGPT短期是无法替代技术人员的工作,虽然ChatGPT 也会编写代码,但它目前还只能编写一些功能单一、通用化、工具化、业务无关性的程序。很多商业软件(系统)的开发过程是非常复杂,需要进行完整的需求分析、设计、集成、测试、调优和反复迭代才能成功交付,在迭代的过程中,需求的多变性与多样性,业务逻辑错综复杂,再把它形成代码就更难了,ChatGPT 是绝对无法胜任的。

不可否认,ChatGPT作为一个很火的工具,用好它可以极大地提升开发的效率,帮助技术人员降低入门的难度。在开发的过程中,如果对某个技术实现不清楚或者对某些API不熟悉、或者对某些中间件的配置不熟悉,都可以请ChatGPT来帮忙,它能快速帮我们查找资料(比百度好)、编写算法/或者代码块,然后只要进行集成修改就可以集成到项目中。这样我们就可以集中精力去思考客户需求、考虑架构设计、优化等工作。

那么ChatGPT能帮助技术人员做什么?

作为一名开发者,我也很早就去关注它,对它能帮助“我做什么”比较感兴趣,因此也进行了研究,比如我是一名架构师,那么ChatGPT能帮助我做什么呢?来看看ChatGPT的回答:

从这个回答的内容来看,还是和架构师要做的工作很匹配。ChatGPT的出现,能帮助在搜索时,得到更加精确的回答,比使用百度/google的搜索结果好太多,不太需要自己进行过滤。

以下是我根据ChatGPT的特点和使用过程做的一些使用的总结。

1、学习新技术或者开源组件的资料

作为技术人员,经常需要学习及了解一些新的技术/或者某些技术的细节(API),以前的话,需要经常上百度等搜索引擎进行查找,然后对搜出来的结果进行筛选及过滤,效率会比较低。而ChatGPT可以一下帮你筛出结果,给你提供有用的参考。比如我想学习Flink,可以向ChatGPT提问:

比如我想知道nginx location的用法:

等等, ChatGPT可以很快的回答你想要的内容,省去网上搜索的过程,而且给出的答案都是比较准确。

2、理解代码及注释代码

有时候在开发地过程中,对某些代码或者框架的源代码不是很理解,上网搜索又很麻烦,这时就可以通过ChatGPT来帮助理解,或者某些代码没有注释,可以让ChatGPT来帮你注释。

比如下面这一段从eureka-client包中找的一段代码,源码上面不好理解,可以让ChatGPT来帮你解决,它的解决还是详细,对每一行代码都会进行说明。

比如以下这段代码,上面是没有加注释说明,让ChatGPT来帮忙,看看效果:

/** * 获取指定instance id的所有InstanceInfo对象 * @param id instance id * @return 包含所有匹配InstanceInfo对象的列表 */public List<InstanceInfo> getInstancesById(String id) {    List<InstanceInfo> instancesList = new ArrayList(); // 创建一个存储InstanceInfo对象的空列表    Iterator var3 = this.getApplications().getRegisteredApplications().iterator(); // 获取注册的所有应用程序
while(var3.hasNext()) { // 遍历每个应用程序 Application app = (Application)var3.next(); InstanceInfo instanceInfo = app.getByInstanceId(id); // 检查当前应用程序是否包含与输入的instance id相对应的InstanceInfo对象 if (instanceInfo != null) { // 如果找到了,则将其添加到列表中 instancesList.add(instanceInfo); } }
return instancesList; // 返回包含所有匹配InstanceInfo对象的列表}

ChatGPT还是能给出比较好的注释,是不是觉得开发简单了呢,编写的过程中可以不要写注释,写完后让ChatGPT来帮忙。 接手旧代码时,没有注释,可以让ChatGPT来帮忙。

3、 查找程序报错原因给出解决办法

在程序开发及运行过程中,都会遇到各种问题,有些问题可以很快地定位到,但有些问题可能涉及到开源的框架/中间件,那这时就需要上网查找,看看别人遇到时是怎么解决的,但这个过程可能很繁锁,因为网站的资料很多都是重复的,而且大部分都是不正确,还是需要你一个个去试,这时也可以借助ChatGPT来解决。

更多的错误异常,大家可以自行尝试。

4、根据伪语言或者具体格式来生成代码

比如有时候在做接口对接时,需要去定义接口的输入输出的DTO,一般现在的很多接口都是基于json格式的,传统都是要一个属性一个属性的打上去,现在有了ChatGPT,可以让它直接帮你生成,比如在对接微信的支付接口时,需要有一堆参数。

再比如有以下表结构,让ChatGPT帮我生成Java对象。

public class AdInfo {    private Integer id;    private String title;    private String path;    private String imgPath;    private Integer pos;    private Integer status;    private LocalDateTime createdTime;    private LocalDateTime revisedTime;
// 无参构造函数 public AdInfo() {}
// 带参构造函数 public AdInfo(Integer id, String title, String path, String imgPath, Integer pos, Integer status, LocalDateTime createdTime, LocalDateTime revisedTime) { this.id = id; this.title = title; this.path = path; this.imgPath = imgPath; this.pos = pos; this.status = status; this.createdTime = createdTime; this.revisedTime = revisedTime; }
// Getter和Setter方法 public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
public String getTitle() { return title; }
public void setTitle(String title) { this.title = title; }
public String getPath() { return path; }
public void setPath(String path) { this.path = path; }
public String getImgPath() { return imgPath; }
public void setImgPath(String imgPath) { this.imgPath = imgPath; }
public Integer getPos() { return pos; }
public void setPos(Integer pos) { this.pos = pos; }
public Integer getStatus() { return status; }
public void setStatus(Integer status) { this.status = status; }
public LocalDateTime getCreatedTime() { return createdTime; }
public void setCreatedTime(LocalDateTime createdTime) { this.createdTime = createdTime; }
public LocalDateTime getRevisedTime() { return revisedTime; }
public void setRevisedTime(LocalDateTime revisedTime) { this.revisedTime = revisedTime; }
// toString方法 @Override public String toString() { return "AdInfo{" + "id=" + id + ", title='" + title + '\'' + ", path='" + path + '\'' + ", imgPath='" + imgPath + '\'' + ", pos=" + pos + ", status=" + status + ", createdTime=" + createdTime + ", revisedTime=" + revisedTime + '}'; }}

看吧,ChatGPT还是一个不错的代码生成器。

5、代码重构

在系统的版本迭代开发过程中,随着业务的增加、可能会出现冗余的代码(方法/代码块),那这时可以通过 ChatGPT来帮你进行重构,它会帮你抽出公共部分,然后将方法在重新组合,形成更好的代码结构。

6、API文档生成

现在的程序开发与对接过程中,基本上都是使用swagger-ui这个在线API文档的形式,对于内部开发来说,是可以直接使用的,但是当程序部署到生产环境上,这些入口是要关闭的,别人不可能直接输入网址就可能访问到你的API的详细信息,这样太危险了。那么,有时候需要对外提供API文档,一般的做法是使用Word或者MarkDown文档来进行编写,需要手工一个个打上去,还是很费时间。现在也可以交给ChatGPT来做。

7、 设计方案

有时在设计新系统时,对这块又没有接触过,要怎么对设计这个系统,有没有可以参考的,这时一般也是上网搜索,然后在一堆结果中去查找,去学习。有了ChatGPT后,可以更好的去学习。

等等内容。

以上的内容,当作一个引子,其实还有其他方面的内容,比如数据模型设计、设计方案,方案比对、优化等等。ChatGPT是一个不错的工具,只要善加利用,还是能够获得更多的收益和好处。


推荐一个懒人工具,也方便在办公室使用(看剧),释放双手。

110946.jpg
随机推荐

最新主题

127 回复

好好 学习了 确实不错
帮帮顶顶!!
zx0040
2023-3-12 22:52:04
看帖回帖是美德!
感谢分享!
帮助顶上去!
簌簌
2023-3-13 00:02:44
认真看完了
回复让大家看到!
路过,支持一下啦
好帖
学习了,不错
好帖
鼓励一下
认真看完了
认真看完了
谢谢楼主!
没看完~~~~~~ 先顶,好同志
认真看完了
LZ说的很不错
不错
不错,支持下楼主
顶上去
找到好贴不容易,我顶你了,谢了
路过,学习下
找到好贴不容易,我顶你了,谢了
不错,支持下楼主
鼓励一下
飘过
不错,支持下楼主
LZ真是人才
前排支持下
感谢分享!
学习了,谢谢分享、、、
帮帮顶顶!!
认真看完了
路过,学习下
回帖鼓励!
不错,支持下楼主
1234下一页
高级模式
游客
返回顶部