DevChat助力成为软件开发的“钢铁侠”

一、背景介绍:

随着人工智能ChatGPT的发展,ChatGPT 的开放将推动人工智能在各个行业的应用,带来诸多的变革和提高,曾经一段时间也是担心对软件行业的影响,会不会以后就不需要这么多程序员了,实际上在当下,有了它的辅助,程序员的工作量大大减轻。

DevChat助力成为软件开发的“钢铁侠”_第1张图片

记忆中,在《钢铁侠》系列电影中,有一个不可或缺的角色,那就是“钢铁侠”的智能助手——贾维斯。贾维斯是一个人工智能管家系统,不仅能够帮助钢铁侠实时分析情况,还能帮助钢铁侠管理整个家庭,可以说是“钢铁侠”生活和战斗的好助手了。

DevChat助力成为软件开发的“钢铁侠”_第2张图片

当然,这些例子还有很多,比如《黑豹2》中的苏睿的管家(瓦坎达科技),看完电影后,除了满满的科技感震撼之外,时常会在脑海中构想,会不会随着时代的不断发展,在不久的将来,IT开发人员也是“动动嘴”,代码就能自己写出来呢?

看似不可思议的事情,在现在就可以先来体验v1版本的“贾维斯”,一款背靠 GPT-4 的聊天式编程辅助工具 - DevChat!只需要简单的集成,就能实现打打字,就能帮助您提高编程技能和工作效率。


二、什么是DevChat?

Devchat是由国内领先的研发效能分析平台思码逸精心打造,它为开发者提供了一种全新的编程体验。使用 Devchat 插件,无缝融入 IDE,一网打尽GPT-4、Claude、讯飞等知名大模型 ,帮助开发者提高开发效率,告别脏活累活!

DevChat是一个集成了多种主流大模型的AI编程工具,专注于提升程序员的编程效率。它整合了ChatGPT、Codex等热门AI大模型,支持自然语言编程、代码编写、代码生成、代码补全等功能。

Devchat最大的优势是一站式服务,集成热门大模型,并且可以根据需求随心切换,省去了选择和整合不同AI模型的麻烦,无需过多配置就可以快速上手,从而全面提升开发效率。


三、DevChat安装配置指南:

打开DevChat官方提供的注册链接,可以进行现阶段免费试用,提供了3种的注册方式,本人选择了“邮箱注册”,更为详细的步骤。

通过以下3个步骤就可以在VsCode的IDE中进行使用DevChat,基本上很简单,不用太过于复杂的配置。

接下来就开始体验一下,DevChat如何给IT开发人员提高工作效率呢?

DevChat助力成为软件开发的“钢铁侠”_第3张图片


四、使用DevChat如何快速学习Go语言?

本人工作中常用的技术栈是PHP、Python,对于Go语言一直想要学习与实践一番。今天就用DevChat看看如何新手如何写出高质量的代码。

先简单尝试一下DevChat的功能:

  • 可以选择不同的模型,当然,如GPT的模型会与token值有关,所以,使用完默认赠送的量后,就需要进行充值了。
  • 提问区,可以将需要搜索的问题输入进去。
  • 点击“发送按钮”后,就可以提交问题的搜索了,此时,DevChat即可根据相关的问题进行回答问题。


DevChat助力成为软件开发的“钢铁侠”_第4张图片

按照PHP类似的后端开发经验,刚刚入门实践的话,无非就是使用路由、数据库的CURD操作、环境部署,下面我们就按这个目标计划来使用DevChat一步一步完成Gin的代码。

1. 如何使用gin写一个web项目,路由包含get、post请求:

DevChat助力成为软件开发的“钢铁侠”_第5张图片

mkdir ginweb
cd ginweb
go get -u github.com/gin-gonic/gin
DevChat助力成为软件开发的“钢铁侠”_第6张图片

执行到第一步就报错了,提示“go.mod文件没有在当前目录中找到”,因为也是第一次接触go,没看明白,没关系,让DevChat来进行排错吧,通过DevChat给出的原因是“在Go 1.11之后,引入了Go模块化的概念,使用go get命令来获取依赖已经不再推荐使用。”。

go mod init ginweb.com
go install github.com/gin-gonic/gin  # 报错,并且给出了解决方案
go get github.com/gin-gonic/gin
DevChat助力成为软件开发的“钢铁侠”_第7张图片

DevChat助力成为软件开发的“钢铁侠”_第8张图片

可以看到根据DevChat搜索的方案,我们快速就启动了一个gin框架的,并且还开启了2个路由:

  • 一个是get请求,使用postman请求工具访问 http://localhost:8080/hello
  • 一个是post请求,使用postman请求工具访问发送POST请求到 http://localhost:8080/user,并设置参数name和age的值

DevChat助力成为软件开发的“钢铁侠”_第9张图片

2. 小结:

以下是从0到1利用DevChat,通过聊天式输入想要的问题,就可以得到答复,从安装Gin,到创建main.go文件,再到运行,都是按照回答的方案进行实现的,期间也遇到问题,通过DevChat可以轻松的进行排错解决,非常的方便、便捷。

DevChat助力成为软件开发的“钢铁侠”_第10张图片


五、使用DevChat如何进行数据库的操作:

后端开发免不了跟数据库打交道,下面我们就使用DevChat搜索“如何使用Gin进行数据库,用户登录表的操作”,马上就可以得到Gin使用gorm操作数据库的实例代码。

DevChat助力成为软件开发的“钢铁侠”_第11张图片

  • 安装和导入所需的依赖包,这里我们选择MySQL的数据库
  • 建立数据库连接和模型结构,这里会在数据库启动时默认创建好表,比较像PHP Laravel框架的Migrate,果然大家还是有异曲同工之处。
  • 路由增加注册和登录的接口

DevChat助力成为软件开发的“钢铁侠”_第12张图片

上面代码是实现用户注册、用户登录的逻辑,DevChat也温馨提示了,为了安全,建议对密码进行哈希或其它安全措施,还能自动找出Bug,可以有效的避免新手遇到的问题。

DevChat助力成为软件开发的“钢铁侠”_第13张图片

那我们根据DevChat返回的结果,同步到刚刚的ginweb项目中,以下是在本地起的docker,启动了一个MySQL容器,用于Gin对数据库的操作。

在这里插入图片描述

代码启动后,可以看到自动实例化了一张表结构,都不用使用create建表语句。
DevChat助力成为软件开发的“钢铁侠”_第14张图片

通过postman进行操作,可以看到我们插入了MySQL数据库的users表一条数据。
DevChat助力成为软件开发的“钢铁侠”_第15张图片

这里可以看到,我还没有自己写一行代码,就让DevChat完全把代码写出来了,包括注释也添加了。

DevChat助力成为软件开发的“钢铁侠”_第16张图片


六、如何在k8s中部署:

公司目前所有的应用都是在k8s部署,我们可以尝试用DevChat给出方案,初始化项目并且部署到测试环境中。

开发新技能,直接可以将一个文件添加到DevChat中,下面的的标识就会显示1,表示这个代码片段加入到DevChat中了,直接在问题描述区中,输入想要问的问题即可,比如:“写一份k8s部署的dockerfile和yaml文件”。

通过添加代码文件进行问答,Dockerfile文件,可以DevChat代码中的使用“Insert Code”就可以直接把代码插入到文档中,非常的快捷方便。

DevChat助力成为软件开发的“钢铁侠”_第17张图片

注意:这里必须要有一个当前需要插入的文件,否则无法插入到文件中。

在DevChat代码中的使用“Insert Code”把代码插入到Deployment.yaml文档中,对文档进行稍微的改造,删除一些不太需要的东西。再可以使用DevChat代码中的“View Diff”,可以查看2个文件不一致的地方。

完成这2个文件的写入,我们准备将代码提交到Git仓库,并且在k8s上执行测试环境的部署工作。


七、提交Git信息并且发布到测试环境:

使用Git命令操作当前的目录的文件全部提交到,Git当前工作区的所有文件都加入暂存区。用于DevChat去识别暂存区的文件,来分析这次提交的内容。

# 第一次初始化
git init
# 将当前工作区的所有文件都加入暂存区
git add ./
# 查看仓库当前状态
git status

在功能区,选择“git diff --cached”,这样就会把git提交到暂存区的文件提交到DevChat中,在问题提问区,输入“/commit message 中文描述”,再点击“发送”就可以拿到相关的结果。

DevChat助力成为软件开发的“钢铁侠”_第18张图片

DevChat默认是用英文答复的,对于我这种英文不是太好的,只能再次输入让中文描述一下,可以看到DevChat解析了提交的文件,并进行了分析,得出一些结果。点击“Copy message”后,直接会复制一些文案,直接无脑使用git commit命令进行提交,当然,正式的项目还是可以稍微修改一下文案,避免“挨骂”。

DevChat助力成为软件开发的“钢铁侠”_第19张图片

因为公司使用的是“云效”代码仓库,我们将这个项目初始化并推送到“云效”的仓库中,如下可以看到代码已经上传到“云效”的仓库中。

在这里插入图片描述

因为是公司的集群配置,一些敏感的信息就不方便透露。

接下来是配置流水线,通过对以下的三步进行操作:

DevChat助力成为软件开发的“钢铁侠”_第20张图片

步骤 名称 描述
第一步 流水线源 选择对应的项目,因为目前只有master分支,所以就选择master分支做为构建的分支。
第二步 Go镜像构建 这里需要设置一些参数:
(1). 标签为Docker镜像Tag。支持固定参数例如1.0,或者动态参数例如${DATETIME}。
(2). Buildkit 版本。
(3). 指定Dockerfile路径为Dockerfile文件相对于代码库根目录所在路径,如META/config/Dockerfile或Dockerfile。
(4). ContextPath为docker build命令执行上下文路径。填写相对于代码根目录的路径,如target,如果不填则为Dockerfile文件所在目录。
第三步 Kubernetes发布 这里需要设置一些参数:
(1). Kubectl 版本为当前步骤中使用的kubectl客户端版本。请选择与集群适配的Kubectl版本。
(2). 命名空间为 Kubernetes 集群下的命名空间。例如"default"。
(3). YAML 路径为需要部署的 YAML 文件或者目录在源码中的相对路径。例如:“manifests”

配置完后,通过打包,可以完美的进行构建成功。

DevChat助力成为软件开发的“钢铁侠”_第21张图片

通过使用DevChat给出k8s部署的方案,新建了2个文件:Dockerfile和Deployment.yam文件,可以通过DevChat快速的完成Git message的提交信息分析,解决了平时写git message的痛点,后面就是推送到代码到云效仓库,可以发现,从DevChat给出的方案是完全可以通过的。


八、对比团队中目前开发的AI小工具:

现在AI很火,好多人都在玩GPT,公司的小伙伴也是蹭了一波热度,开发了一些小工具,供大家来玩耍,可以看到基本的功能还是有的,但是DevChat可以嵌套在VsCode做为插件使用,可以完美的做为VsCode一部分,不用来回切换,而且更精准的可以理解上下文关系,给出更为精确的答复。


九、使用DevChat进行Gin的单元测试:

1. 关于为什么要写单元测试?

  • 提高代码可读性,降低理解成本:清晰的单元测试能够在不了解代码主要逻辑的情况下明确函数的功能以及关键输入输出。

  • 降低调试成本:单元测试足够小,且case充分的情况下,会极大的缩短调试的时间,不需要再深入到函数内部一步步排查。

  • 降低代码修改成本:在迭代开发过程中,难免会对以前的代码进行修改或者是重构,有个单元测试,做修改后能够及时验证是否对其他模块乃至整个系统有影响,及早发现问题,规避风险。同时只需要针对修改内容进行测试,研发效率相应提升。

  • 缩短开发周期:尽早的发现bug,尽早修复,可以大大的缩短开发周期并且降低运维成本。

2. 如何使用DevChat来加速单元测试的开发。

在实际开发过程中,写单元测试的是比较费时间的,但是有些单元测试不得不做。那么我们使用DevChat来写单元测试是一种什么样的体验呢?

首先选择一段代码或者一个文件,点击“添加到DevChat”,添加后,直接在搜索区输入想要的问题,如“帮我写一个单元测试”。

DevChat助力成为软件开发的“钢铁侠”_第22张图片

输入后,发送问题,就可以看到DevChat自动帮我们创建了这段代码的单元测试,大概有50行代码吧,完全可以在1-2秒钟完成,就问一下效率提高了多少?

将DevChat回答区的代码,使用Insert Code插入到测试文件中,再使用“go test”命令,发现完美不报错,从搜索到实现,只花费了不到5秒钟时间,想想如果用整个文件呢?效率会提升到多少,而且写的代码还比我要好很多。

DevChat助力成为软件开发的“钢铁侠”_第23张图片


总结:

以上是本人对DevChat从0到1的体验过程,通过体验学习新技术Go语言,从开发到测试,再到项目的部署,在短短的不到10几分种,从刚刚接触Go语言就能完全写出符合项目规范要求的代码,效率非常的高,缩短了项目交付的周期,简简单单就能完成高质量软件开发需求。

DevChat助力成为软件开发的“钢铁侠”_第24张图片

一、对软件开发行业来说DevChat的出现有可能会带来一些新的就业机会。因为DevChat的代码编写也是需要专业的人员来提供技术支持的。对DevChat编写出来的代码进行调试修改,根据客户需求变更进行针对性处理。通过对DevChat编写的代码的调试修改为程序员创造出新的就业工作机会。

二、DevChat的出现可以节省软件代码编写时间。众所周知,程序员并不是完全机械化的敲代码,实际写代码的时间占比仅有20%左右,80%的时间是在调试修改和沟通协调以及一些客户需求信息同步。所以DevChat的出现可以帮助程序员解决一些简单的代码编写工作,减少代码编写时间,提高软件开发工作效率。

三、DevChat可以让软件开发的逻辑性更强。DevChat的优势就在于自身强大的逻辑推理能力,是算力和虚拟训练的结合,通过对训练数据的统计发现所蕴含的规律。进而让编写出来的代码更具逻辑性。但是需要注意的是,虽然DevChat编写出来的代码逻辑性较强,但是还是需要专业的程序员进行校对的,避免出现错误。

四、对简单的代码帮助更大。DevChat的出现会提高聊天应用的自动化水平,使其能够快速有效地回复用户的消息。这可能会对一些简单的聊天应用程序开发工作造成冲击,但并不会导致底层程序员失业。

五、有助于整个行业的发展。DevChat的出现会提高聊天应用的自动化水平,但不会导致底层程序员失业。它的出现可能会带来新的工作机会,并对一些程序员造成冲击,但最终会有利于整个行业的发展。

你可能感兴趣的:(ide)