GitHub Copilot:让开发编程变得像说话一样简单

引用:

人类天生就梦想、创造、创新。但今天,我们花太多时间被繁重的工作所消耗,花在消耗我们时间、创造力和精力的任务上。为了重新连接我们工作的灵魂,我们不仅需要一种更好的方式来做同样的事情,更需要一种全新的工作方式。

image.png

前言:

最近,随着GPT-4 植入 Office 全家桶,几秒钟就能够做成 PPT、Excel文档,办公软件应用无缝衔接,在工作中解放双手,不得不说的确很强!尚能饭否?感叹其背后拥有如此巨大的知识库跟算力去支撑!当我们还沉浸在-传统的工作方式是否终将被颠覆?在研发编程领域,开发者工程师们的得力助手GitHub Copilot 的诞生,想必更是让我们由衷感叹其如此强悍!

案例场景应用:
image.png
众所周知,GitHub 代码仓库跟 SonarQube 这类代码扫描工具都有 ES 的影子,协助研发做代码的管理、版本diff,以及潜在问题扫描检查有着极其重大的意义!

image.png

上述是 SonarQube 做 CodeReview 的效果,此伪代码存在 BUG 大名鼎鼎的空指针!!!
而换成 AI 工具,我们来看一下ChatGPT如何随机应变?可见ta在下述回答中规中矩,“有智慧的回答”,明显能够看出其上下文关联性很强!!!

image.png
image.png
我们这里浅尝试下单方法以及算法,比如耳熟能详的数据结构算法,快速排序、冒泡排序、二分查找…

译点一下,马上晓得
译点一下,马上晓得
由此可见,AI可以协助我们开发者完成自动补全代码块、单方法以及函数,并根据代码注释提示自动生成可运行的代码片段。

在使用 Microsoft Visual Studio、Vim、Visual Studio Code、JetBrains 集成开发环境,通过 Copilot 工具无疑是大大提升了广大开发者的生产力,节省了研发查阅资料的时间,使得研发效率大幅度提升。

image.png

这注将是一个划时代的产品,随着OpenAI训练的数据集不断扩展,将各种开发语言有针对性地进行训练,想必在很多垂直领域上会带来更大地突破,帮助开发人员将编程速度提高到不可思议的地步。

我们也结合到实际项目中,再来上一些示例:

那就让 Copilot 帮我们封装一个websocket.js,用于连接websocket…
image.png

从上述可知,我们看到 AI 给我们提供了多种解决方式以供参考。在如此短时间内,你的提示语无疑成了拥有巨大生产力 AI 工具的媒介,特别是当遇到需要检索资料时,尤其是针对SQL或DSL脚本写不出来的情况下,可以借力于 Copilot ,这不仅缩减了google一下的时间,还能够协助你补全并完善相关事项,提高软件开发的效率以及工作的满意度,这将是一种从传统编程向有智慧、有意识思维模式的转变…

image.png

随着 OpenAI 的 GPT-4 模型的不断演进,其能力还远不如此,还有更多功能值得我们去挖掘-工作中得力伙伴,特别是将其集成到我们开发人员工作流程各个部分中去,比如像 TFS 中我们开发者 Git 代码仓库版本的管理-团队协作:

在一个大型开源项目维护过程中,有规范的提交(PR)对于我们开发者是及其重要的,好的 pr 描述不仅能让代码审查工作人员一目了然,还可以协助审阅者快速了解 Code 变动情况,提升了沟通效率的同时,又减少了合并过程中出错的可能性。

延伸:
image.png

当我们开发者创建 pr 时,AI 若是能够标记动态提取代码,并分析代码的变更信息,帮我们自动生成描述及建议,这样我们开发人员就可以查看或修改建议的描述即可。

当我们开发者创建 pr 时,发现提交缺少足够的测试,AI 若是能够智能提醒我们开发人员,并给出解决策略,协助审查工作人员解决问题以及 Bug 修复。

这无疑是降低了在代码审查环节的时间成本。当下,一般都是开发人员通过搜索引擎查阅相关资料文档,AI 这一来同时改变了人们检索信息的方式与习惯,这样,我们更多需要与 AI 传达较为准确的信息媒介就是-提示词。

总结:

的确,DT&AI时代,AI类创新性产品的出现,无疑给开发者带来了巨大的冲击。但是,作为开发者的我们,应以积极的态度去面对,拥抱技术,提高我们自身的知识技能,学会借助并运用工具,从而更好地适应技术的发展。
image.png
1、注册 GitHub 账号

image.png

2、申请试用

image.png

3、安装代码编辑器

image.png

4、安装 GitHub Copilot 插件

以 Visual Studio Code 为例(下载->https://code.visualstudio.com)

image.png

接着,进入 Extensions 面板,在搜索框中输入回车,在搜索结果中找到插件并选择相应的插件点击安装,如下:

image.png

然后,待安装完成后,单击工具底部状态栏中的 GitHub Copilot 图标,进入 GitHub Copilot ,可以选择使用 GitHub 账户登录。在使用 GitHub Copilot 插件过程中,像我们在上述给的示例中,即在编辑器中输入关键字或者你想要实现效果的提示语句,GitHub Copilot 会自动出现一个提示框,我们就可以选择其中的建议代码了,或者还可以继续输入提示,获得更多我们想要的建议,当然,也可以手动编辑并校正代码来达到我们预期的效果。

文末,这里 Copilot 也提供了一些快捷键,使用技巧:
image.png

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

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

相关文章

Mysql-主从复制与读写分离

Mysql 主从复制、读写分离 一、前言:二、主从复制原理1.MySQL的复制类型2. MySQL主从复制的工作过程;3.MySQL主从复制延迟4. MySQL 有几种同步方式:5.Mysql应用场景 三、主从复制实验1.主从服务器时间同步1.1 master服务器配置1.2 两台SLAVE服务器配置 2…

配置tomcat内存大小(windows、linux)

一、参数说明 -Xms: JVM初始分配的堆内存 -Xmx: JVM最大允许分配的堆内存,按需分配 -XX:PermSize: JVM初始分配的非堆内存 -XX:MaxPermSize: JVM最…

【报错】sqli-labs靶场搭建出现“Unable to connect to the database: security”

问题描述 搭建sqli-labs靶场时,在配置好PHP和mysql以及db-creds.inc配置文件后 初始界面可以运行,但点击关卡报错 提示连接不到数据库 Unable to connect to the database: security解决方案: 1、数据库配置出错,先查看db-cre…

java篇 类的进阶0x0D:接口与抽象类

文章目录 接口定位内容构成抽象方法缺省实现的抽象方法private 方法静态方法 静态常量 应用特点多态IDEA 快捷自动实现接口 接口的继承接口是否属于多继承?从不同接口继承相同方法阻绝抽象方法的缺省实现 抽象类抽象类 vs. 接口如何让接口更像抽象类 接口 定位 接…

Apple - Bonjour (NSNetService)

Bonjour 文章目录 Bonjour一、Bonjour介绍Cocoa 网络框架二、Bonjour 网络配置原理1. 寻址(分配IP地址给主机)2. 命名 (使用名字,而不是IP地址来代表主机)3. 服务搜索(自动在网络搜索服务)三、使用说明1、发布服务2、查询服务3、决议服务四、使用示例NSNetServiceBrowserD…

Maven项目的两种打包方式-spring-boot-mavne-plugin/maven-jar-plugin

Maven项目的两种打包方式-spring-boot-mavne-plugin/maven-jar-plugin 1. 前言Maven的两种打包方式 2. 流程图3. spring-boor-maven-plugin打包4. maven-jar-plugin/maven-dependency-plugin打包 1. 前言 Maven的两种打包方式 spring-boot-maven-plugin springboot默认打包方…

如何运用R语言进行Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合实践与拓展

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

Simple Set Problem hdu 7314

Problem - 7314 题目大意&#xff1a;有n个数组&#xff0c;从每个数组中取一个数构成数组b&#xff0c;求b中最大值和最小值的差的最小值 1<n<1e6;总数字数量<1e6;-1e9<数字大小<1e9 思路&#xff1a;要想最大值和最大值的差最小&#xff0c;所以我们要对他…

【FusionInsight HD】FusionInsight HD 651创建集群-Yarn

FusionInsight HD 651创建集群-Yarn FusionInsight HD 651创建集群-Yarn登录FusionInsight Manager修改初始密码创建集群设置集群信息选择主机设置机架选择服务分配角色服务配置确定安装集群集群验证HDFS验证Yarn验证Zookeeper验证总结FusionInsight HD 651创建集群-Yarn 登录…

机器学习深度学习——softmax回归的简洁实现

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——softmax回归从零开始实现 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你…

Java 设计模式——原型模式

目录 1.概述2.结构3.实现3.1.浅拷贝3.2.深拷贝3.2.1.通过对象序列化实现深拷贝&#xff08;推荐&#xff09;3.2.2.重写 clone() 方法来实现深拷贝 4.优缺点5.使用场景 1.概述 &#xff08;1&#xff09;原型模式 (Prototype Pattern) 是一种创建型设计模式&#xff0c;是通过…

在Windows 10/11 上安装GNS3模拟器

文章目录 在Windows 10/11 上安装GNS3模拟器简介支持的操作系统最低要求推荐配置要求最佳配置要求下载GNS3 all-in-one 安装文件安装GNS3在Windows 10/11 上安装GNS3模拟器 简介 本文档解释了如何在Windows环境中安装GNS3。你将学习如何: 下载所需的软件安装前提条件和可选软…

【C++】 VS2020 vector+template的案例

如果对博主其他文章感兴趣可以通过【CSDN文章】博客文章索引找到。 # include <iostream> # include <vector> using namespace std;template<class T> // 用class或者typename均可 void my_print(T& v, const string msg) // v前面不允许加const, 加…

SpiderFlow爬虫平台(爬虫学习)

申明 作为自己学习的记录,方面后期查阅 官网 SpiderFlow官网 简介 spider-flow 是一个爬虫平台&#xff0c;以图形化方式定义爬虫流程&#xff0c;无需代码即可实现一个爬虫 是使用springboot开发的项目,后端代码直接运行即可使用

Codeforces Round 888 (Div. 3)(A-F)

文章目录 ABCDEF A 题意&#xff1a; 就是有一个m步的楼梯。每一层都有k厘米高&#xff0c;现在A的身高是H&#xff0c;给了你n个人的身高问有多少个人与A站在不同层的楼梯高度相同。 思路&#xff1a; 我们只需要去枚举对于A来说每一层和他一样高&#xff08;人的身高和楼…

DNS协议详解

DNS协议详解 DNS协议介绍DNS解析过程DNS查询的方式递归查询迭代查询区别 DNS协议介绍 DNS 协议是一个应用层协议&#xff0c;它建立在 UDP 或 TCP 协议之上&#xff0c;默认使用 53 号端口。该协议的功能就是将人类可读的域名 (如&#xff0c;www.qq.com) 转换为机器可读的 IP…

uniapp 微信小程序 页面+组件的生命周期顺序

uniapp 微信小程序 页面组件的生命周期顺序 首页页面父组件子组件完整顺序参考资料 首页 首页只提供了一个跳转按钮。 <template><view><navigator url"/pages/myPage/myPage?namejerry" hover-class"navigator-hover"><button ty…

数据结构---顺序栈、链栈

特点 typedef struct Stack { int* base; //栈底 int* top;//栈顶 int stacksize //栈的容量; }SqStack; typedef struct StackNode { int data;//数据域 struct StackNode* next; //指针域 }StackNode,*LinkStack; 顺序栈 #define MaxSize 100 typedef struct Stack { int*…

PyTorch quantization observer

文章目录 PyTorch quantization observerbasic classstandard observersubstandard observer PyTorch quantization observer basic class nameinheritdescribeObserverBaseABC, nn.ModuleBase observer ModuleUniformQuantizationObserverBaseObserverBase standard observ…

智慧工厂4G+蓝牙+UWB+RTK人员定位系统解决方案

人员定位在智慧工厂的应用正逐渐受到重视&#xff0c;通过使用现代化的技术和智能终端设备&#xff0c;工厂管理者能够实时定位和跟踪员工的位置&#xff0c;方便进行人员调度管理和监督人员的工作情况&#xff1b;人员遇到紧急情况&#xff0c;可通过定位设备一键报警求救&…