如何借助AI 来提高开发效率

前言

随着人工智能(AI)技术的快速发展,特别是大规模语言模型(如 GPT 系列)的崛起,软件开发领域正在经历一场革命。AI 大模型不仅在代码生成方面展现出强大的能力,还在测试、维护和创新等多个环节中发挥着重要作用。
因此作为开发的我们也要跟上时代的步伐,借助AI工具来提高我们的开发效率,虽然最开始很难接受,很难想象AI可以替代我们这个码农,但是放下观念真实的接触下来,借助AI工具真的可以做到提升开发效率,提高自己的代码质量,自己使用AI已经有一段时间了,下面自己以GitHub Copilot 为例分享下,自己是如何借助AI来高效的开发的。

什么是GitHub Copilot

GitHub Copilot 是由 GitHub 和 OpenAI 联合开发的一种人工智能编程助手工具。它是基于 OpenAI 的大型语言模型 GPT(尤其是 GPT-3)的变体构建的,旨在为开发者提供智能的代码补全和建议。这项工具通过分析上下文和注释,自动生成代码片段,帮助开发者更高效地编写代码。
GitHub Copilot是经过大量数据训练,以自然语言处理为核心的深度学习模型。这些模它具有强大的语言理解和生成能力,能够执行从文本生成到复杂问题求解的多种任务。

如何使用GitHub Copilot?

本人为移动端开发,以Android studio为例子,GitHub Copilot提供了idea插件,首先安装插件
在这里插入图片描述
由于AS的版本不一致,因此搜索到的Copilot的版本插件也不太一样,不用在意细节使用最新的就可以。
插件安装成功后,重启Android studio ,便可以在侧边栏看到如下入口:
在这里插入图片描述
首次安装未登录,点击登录会自动打开浏览器跳转到GitHub网站,进行登录,登录成功后(需要购买或者可以试用),便可以开始使用Copilot了

应用场景
其实Copilot应用场景是在整个开发周期的方方面面的,大致可以分为如下:

1. 代码自动生成
AI 大模型可以根据自然语言描述生成代码片段,帮助开发者快速实现功能。
例如,GitHub Copilot 工具可以根据注释和上下文自动补全代码。
在这里插入图片描述
如上截图我只是添加如下注释://创建快排方法
GitHub Copilot 便自动帮我写好该排序方法,我只要点击tab 键便一键生成
总之他会结合你当前工程的上下文语境,生成你需要的代码,不过它也不是万能的,它需要你日常进行训练,并不是什么场景都好用,如果你用不惯的可以禁用掉该功能
在这里插入图片描述

2.其他场景
像智能测试、代码审查与优化、文档生成与知识管理、需求分析与项目管理都可以借助
GitHub Copilot Chat来实现。
场景1:生成测试
只需要选中类文件然后
在这里插入图片描述
Copilot 便会自动帮我写好UT
在这里插入图片描述
可以看到它UT写的是相对的全面了。
当然你也可以把它当作简单的搜索工具来用,对比google和百度的优势便是,它会提供具体代码,准确率和效率都很高,它好像是会思考一样,比如我可以对它说:请帮我用Flutter写一个红色的button按钮很快他便会给我代码
在这里插入图片描述

它甚至把如何使用都告诉我了,是不是感觉很神奇,它像是能听懂人话一样。
其实这样的场景还有很多很多我就不去具体列举了,如:

代码审查与优化:(自动化代码审查,提供优化建议,识别潜在的代码问题。帮我review自己写的代码,你只要在聊天框里问,写的代码是否有需要优化的地方,它便会给你对应的建议)
在这里插入图片描述

文档生成与知识管理:
自动生成技术文档,提高文档的准确性和一致性。
支持知识库的构建和管理,便于开发者查找和学习。
对于很复杂的类,你可以问他当前类是干什么用的,帮我添加下注释,他便会告诉你,并且准确率很高
在这里插入图片描述
需求分析与项目管理:
通过自然语言处理技术,自动分析和理解客户需求。
提供项目进度跟踪和管理建议,优化开发流程。
甚至你可以把PM写的需求文档给他,让它帮你提炼总结

大家可以自己去尝试摸索,当你习惯使用它后,你会觉得写代码也会变的很有意思,和传统编程模式搜索方式不同,你需要给Copilot注入自己的“情感”,以对话的方式不断的和他沟通,纠正它的错误,最终把它训练成你适合你的模式,因此可以说每个Copilot都是独一无二的,而你也得学会做一名合格的AI指令师

总之,AI 大模型正在重塑软件开发的各个环节,为开发者、企业和整个产业链带来新的机遇和挑战。未来,随着技术的进一步成熟,AI 将以更智能和协作的方式融入开发流程,推动软件产业的不断进步与创新。而且越来越多的开发者和企业参与到这一变革中,共同探索 AI 驱动的未来。

写在最后
当然AI也不是万能的,只有你合理合规的使用它,它才能给你带来正向的价值,如果你想借助AI,做一些有违法律的事情Copilot 也会坚决的对你说NO,比如
在这里插入图片描述
可见其智能和强大。

总之GitHub Copilot 是一个强大的工具,为开发者提供了智能化的编程支持。它在提高开发效率、帮助学习和探索新技术方面展示了巨大的潜力。然而,作为开发者仍需保持批判性思维,结合自身经验和判断,合理使用这项工具。随着 AI 技术的不断进步,GitHub Copilot 和类似工具将继续为软件开发领域带来创新和便利。切记利用工具而不是成为工具的代替品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/467879.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QML项目实战:自定义Button

目录 一.添加模块 ​1.QtQuick.Controls 2.1 2.QtGraphicalEffects 1.12 二.自定义Button 1.颜色背景设置 2.设置渐变色背景 3.文本设置 4.点击设置 5.阴影设置 三.效果 1.当enabled为true 2.按钮被点击时 3.当enabled为false 四.代码 一.添加模块 1.QtQuick.Con…

HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)本地搜索接入方案

一、方案概述 当用户使用应用/元服务时,开发者可以按照标准意图Schema向系统共享数据,并支持意图调用(空调用与传参调用),以实现用户点击卡片后,可后台执行功能(例如播放指定歌曲)或…

CyclicBarrier使用详解及遇到的坑

上一篇文章讲的是关于是使用CountDownLatch实现生成年底报告遇到的问题,这个计数器和CyclicBarrier也有类似功能,但是应用场景不同。 一、应用场景 CountDownLatch: 有ABCD四个任务,ABC是并行执行,等ABC三个任务都执行完…

k8s-service、endpoints、pod之间是怎么进行网络互通的

k8s-service、endpoints、pod之间是怎么进行网络互通的 1、service2、endpoints3、service、endpoints、pod通信图4、不通服务pod内部间访问 1、service 在K8S中,Service是一种抽象,定义了一组Pod的逻辑集合和访问这些Pod的策略。首先,我们需…

资产管理系统:SpringBoot技术实现

企业资产管理系统 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业资产管理系统的开发全过程。通过分析企业资产管理系统方面的不足,创建了一个计算机管理企业资产管理系统的方案。文章介绍了企…

I.MX6U 裸机开发5.准备C环境并用C语言控制LED

I.MX6U 裸机开发5.准备C环境并用C语言控制LED 一、C运行环境1. 设置处理器模式2. CPSR 寄存器CPSR 寄存器结构模式位MRS 指令MSR 指令 3. 设置SP指针设置 SP 指针示例 保存和恢复 SP 指针示例 4. 跳转到C语言 二、程序编写1. 启动文件 start.S2. main.h 定义寄存器3. 主程序mai…

c++设计模式demo

模式设计原则 依赖倒置原则 ⾼层模块不应该依赖低层模块,⼆者都应该依赖抽象 ; 抽象不应该依赖具体实现,具体实现应该依赖于抽象; ⾃动驾驶系统公司是⾼层,汽⻋⽣产⼚商为低层,它们不应该互相依赖&#x…

【go从零单排】泛型(Generics)、链表

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在Go语言中,泛型(Generics)允许你编写可以处理…

Web前端开发--HTML语言

文章目录 前言1.介绍2.组成3.基本框架4.常见标签4.1双标签4.1.1.标题标签4.2.2段落标签4.1.3文本格式化标签4.1.4超链接标签4.1.5视频标签4.1.6 音频标签 4.2单标签4.2.1换行标签和水平线标签4.2.2 图像标签 5.表单控件结语 前言 生活中处处都有网站,无论你是学习爬…

数据结构-图的概念

不存在空图现象,顶点集不能为空,边集可以为空 研究链接一个顶点的边有多少条非常有意义 无向图的度边的二倍 有向图的入度出度,度边数 有向图一致 重点 子图必须联通,尽可能多的边和结点 对于一个生成树,他有n个节点就有n-1条边 修路问题将各个村庄相连,由于经费有限,只能选择…

TDengine 签约蘑菇物联,改造通用设备工业互联网平台

在当前工业互联网迅猛发展的背景下,企业面临着日益增长的数据处理需求和智能化转型的挑战。通用工业设备的高能耗问题愈发突出,尤其是由这些设备组成的公辅能源车间,亟需更高效的解决方案来提升设备运行效率,降低能源消耗。为此&a…

LSM-TREE和SSTable

一、什么是LSM-TREE LSM Tree 是一种高效的写优化数据结构,专门用于处理大量写入操作 在一些写多读少的场景,为了加快写磁盘的速度,提出使用日志文件追加顺序写,加快写的速度,减少随机读写。但是日志文件只能遍历查询…

vue3使用easy-player播放hls监控流

easy-player未发布在npm上,只能采用静态引入方式,老版本不支持v3 1. 在public文件夹下放入EasyPlayer-element.min.js 和 EasyPlayer.wasm 文件 2. 在根目录index.html引入 这样在vue文件中可以使用easy-player 标签 附件

【VScode】C/C++多文件夹下、多文件引用、分别编译——仅一个设置【适合新人入手】

【VScode】C/C多文件夹内的多文件引用编译 1、问题2、前提(最简环境)3、核心(关键配置)4、成功享用~ 1、问题 在使用 VScode 编写一个简单项目的时候,没有特别配置的情况下,若主文件(.c)引用了自定义的头文…

【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!

数据集介绍 【数据集】道路事故识别数据集 8939 张,目标检测,包含YOLO/VOC格式标注。数据集中包含2种分类:{0: accident, 1: non-accident}。数据集来自国内外图片网站和视频截图。检测范围道路事故检测、监控视角检测、无人机视角检测、等&…

Scala 的包及其导入

Scala使用包来创建用于模块化程序的命名空间。通过在Scala文件的顶部声明一个或多个包名称可以创建包,另一种声明包的方式是使用0,这种方式可以嵌套包,并且提供更好的范围与封装控制。对于包的导入,Scala与Java的区别之一便是&…

使用 HuggingFace 提供的 Elasticsearch 托管交叉编码器进行重新排名

作者:来自 Elastic Jeff Vestal 了解如何使用 Hugging Face 的模型在 Elasticsearch 中托管和执行语义重新排序。 在这篇简短的博文中,我将向你展示如何使用 Hugging Face 中的模型在搜索时在你自己的 Elasticsearch 集群中执行语义重新排序。我们将使用…

深究JS底层原理

一、JS中八种数据类型判断方法 在JavaScript中,数据类型分为两大类:基本(原始)数据类型和引用(对象)数据类型。 基本数据类型(Primitive Data Types) 基本数据类型是表示简单的数…

C++虚继承演示

在继承中如果出现: 这种情况,B和C都继承了A,D继承了B、C 在D中访问A的成员会出现: 这样的警告 是因为在继承时A出现两条分支:ABD、ACD 编译器不知道访问的A中的元素是经过B继承还是C继承 所以B、C在继承A时要用到…

【1】虚拟机安装

1.安装VMware WorkStation Pro VMware下载地址: 密钥:YF390-0HF8P-M81RQ-2DXQE-M2UT6 2.新建虚拟机 centos7下载地址:centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云