Github Copilot AI编码完成工具

目录

一、GitHub Copilot

1、简介

2、工作原理

3、功能

二、GitHub Copilot X

1、什么是 GitHub Copilot X

2、GitHub Copilot X 的功能

三、支持、使用

1、支持

2、使用

四、实际研究、验证(代码方向)

1、代码生成

2、代码提示

3、生成测试用例

4、代码解释

5、代码注释

6、代码优化

7、bug查找

五、个人结论

六、最后说明

Copilot 提供的代码是否都是高质量的?

Copilot 可以替代开发人员吗?

PS: 年纪大了,不想努力了,这段时间在关注一些AI工具,看能不能让其帮忙干点活,自己能偷个懒,关键是那几根头发不能掉了,如果在掉点,去当和尚都不用梯度,换身衣服就行了。

不巧,老大又找我了,表示今年公司压力大,活那么多,人又没钱招,看现在AI这么火,看能不能找点工具来用,提高下研发效率,再这么搞下去,公司马上就要关张大吉了。公私兼顾,就花点时间搞这个事。

查资料,看牛人测评,动手验证,总体感觉Copilot还是可以的,给大家分享下吧。

一、GitHub Copilot

1、简介

GitHub Copilot 是一款基于 AI 的代码完成工具,可与流行的集成开发环境 (IDE) 无缝集成。Copilot 基于 OpenAI 的 GPT-3 语言模型构建,从大量公开可用的代码存储库中学习,实时提供上下文相关的代码建议,凭借其先进的 AI 功能,已超越了传统的代码自动完成功能。

2、工作原理

Copilot 依靠机器学习技术,特别是深度学习来分析和理解代码的模式和结构。对数十亿行代码的培训可以加深对不同编程语言、库和编码风格的理解。这种广泛的培训使 Copilot 能够在开发人员编写代码时向他们提供准确且上下文相关的建议。

3、功能

多语言支持: 支持多种编程语言,允许开发人员在不同的项目和编码环境中利用其功能。无论您使用 Python、JavaScript、C++ 还是任何其他受支持的语言进行编码,Copilot 都可以为您提供针对特定语言的语法和约定量身定制的相关建议。

集成开发环境 (IDE) 集成: 与流行的 IDE(例如 Visual Studio Code)无缝集成,使其可以在您首选的编码环境中轻松访问。这种集成可确保工作流程顺利进行,并允许您在不破坏现有编码设置的情况下利用 Copilot 的功能。

智能代码建议: 利用机器学习算法及其对公开可用代码的丰富知识,在您编写时提供智能且上下文感知的代码建议。它可以理解您正在处理的代码,并建议合适的补全、函数和整个代码片段,从而使编码过程更快、更高效。

高级自动完成: Copilot 的自动完成功能超出了基本的关键字建议范围。它根据周围的代码、函数名称和变量类型提供高度准确且上下文相关的补全。这种高级自动完成功能可以减少手动输入并帮助您更快地编写代码,从而节省时间。

代码生成: 可以根据提供的上下文生成整个函数、类和代码块。此功能对于重复或样板代码特别有用,使开发人员能够快速生成通用代码模式并专注于更高级别的问题解决任务。

二、GitHub Copilot X

1、什么是 GitHub Copilot X

GitHub Copilot X(GitHub Copilot 的未来)由 OpenAI 的 GPT-4 模型提供支持,是一种通过文本和视频进行通信的高度先进的 AI 工具。

它集成到 Visual Studio 和 VS Code 中,提供代码、功能和错误修复的建议。

2、GitHub Copilot X 的功能

语音编码借助 Copilot X,您只需与助手交谈即可免提编码。它能够理解您的语音命令并将其翻译成代码。

拉取请求: Copilot X 简化了创建拉取请求的过程,生成描述性摘要,并提供代码演练以帮助您跟踪更新。

文档协助:如果您有冗长的文档需要阅读,Copilot X 可以帮助加快阅读过程。您可以简单地要求聊天机器人生成摘要并找到您的具体问题的答案。

Copilot for CLI Copilot X 将其帮助扩展到命令行界面 (CLI),直接在终端中提供对 shell 命令和标志的支持。

Copilot 聊天利用 Copilot X 作为聊天机器人来提出问题并寻求各种任务的帮助,例如生成代码、修复错误和创建测试。

Github Copilot是基于的AI代码完成工具,可以与主流IDE集成,提供跨多种编程语言的智能和上下文感知代码建议、高级自动完成和代码生成功能,简化了编码人员的工作量。

GitHub Copilot X 是一款先进的人工智能助手,针对软件开发人员提供了额外的功能,例如语音转代码、拉取请求帮助、文档支持和 CLI 帮助。

三、支持、使用

1、支持

语言支持性:Python,Javascript,Typescript,Ruby,Go,Php,C#,Java..

库和框架支持性:Node.js,React,Vue.js,Angular,Express...

IDE支持VS Code, VS2022,  IntelliJ IDEA等,注意版本

个人认为:使用VS Code的前端,最好;其次是后端,好;再其次是客户端页面,最差

2、使用

前提:有梯子

路径1:淘X购买

路径2:自己注册Github、注册Paypal(绑定银行卡 10$/月)(先免费体验一个月)

说明:注册后在IDE插件中,登录账号即可。

详细注册以及使用技巧参考(猫哥的,感觉还算详细)

Github copilot: 01 如何注册激活插件 | 博客 | 猫哥在线课堂

GitHub Copilot: 02 必须知道的7个技巧帮助你代码自动补全 | 博客 | 猫哥在线课堂

四、实际研究、验证(代码方向)

验证环境:VS2022 + C# (WinForm )

1、代码生成

可以输入要求让其生成代码段,生成效果与提问方式、详细程度有很大关系。

Excel 简易分两类: Excel97-03版本不行;  Excel07以上版本可以

2、代码提示

在编辑器中输入一些代码时,会根据上下文自动提示一些代码片段,比IDE更强大(IDE是关键字补全,Copilot是推断补全),但是推断的代码不一定适用。

3、生成测试用例

大大提高了代码的测试效率。

4、代码解释

函数、语法、异常等解释。

5、代码注释

可以给代码增加注释,增强易读性。

注意:有时虽然会明确指出禁止修改原代码,但是还会修改源代码,需要尤其注意。

6、代码优化

针对简单代码段,其可以提供优化建议和方案;复杂代码段,优化效果一般。

7、bug查找

可以查找bug,但查找的bug,一般IDE自己都会提示,效果一般。

五、个人结论

1、如果需要开发新功能、或需要用到新技术,其能生成代码,给开发人员提供一个思路,减少查找资料、验证的时间,这点帮助巨大。

2、某些语法忘记怎么写了,写个注释让Copilot帮你写,不用去找度娘了,很好。

3、代码提示功能、生成测试用例功能很好,能提高不少编码效率。

六、最后说明

Copilot 提供的代码是否都是高质量的?

不一定,GitHub Copilot 提供的代码只是建议,需要开发人员进行审核和测试。

Copilot 可以替代开发人员吗?

不可以,GitHub Copilot 只是一种代码编写工具,能提升编码效率,但是依旧需要由开发人员编写、审核、测试代码。

注意:实质上目前的功能已经再抢初级开发的饭碗了,随着AI的不断完善,唉...

突然理解了那句话:那帮搞IT在干嘛? 天天砸别人饭碗,早晚把自己的也砸了...

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

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

相关文章

MySQL INSERT插入条件判断:如果不存在则插入

MySQL INSERT插入条件判断:如果不存在则插入(转) 我们经常需要进行sql的批量插入,要求:该条记录不存在则插入,存在则不插入。如果使用一条INSERT语句实现呢? ####普通的 INSERT INTO 插入&…

编译源码-【opencv3.4.16 + vs2013 x64】

编译机器:i5 13500HX RTX 4050 laptop win11 CMake 3.26.4 Configure,去掉勾选图中黄色标注的项,opencv_world 随意 Configure可能提示3rdparty下载timeout,它会下载到源码目录的.cache ├── .cache │ ├──ffmpeg │ │ …

怎样获得RWS证书?

RWS认证负责的羊毛标准是一个独立、自愿的标准,这意味着企业可以选择接受认证。对于一个农场,认证保证了羊的五种自由得到尊重,并确保土地管理和保护方面的最佳做法。认证可确保认证农场的羊毛被正确识别和追踪。 怎样获得RWS证书&#xff1f…

Linux C 网络编程概述

网络编程 计算机网络概述分类网络体系结构通信协议通信流程网络通信帧格式以太网帧格式分析ARP 协议分析IP 数据报分析IP分类IP 分配子网掩码 TCP 段分析 TCP三次握手协议 ⭐TCP四次挥手协议 ⭐ TCP编程基于 TCP 客户端编程-步骤说明基于 TCP 服务器端编程-步骤说明基于 TCP 服…

GZ033 大数据应用开发赛题第09套

2023年全国职业院校技能大赛 赛题第09套 赛项名称: 大数据应用开发 英文名称: Big Data Application Development 赛项组别: 高等职业教育组 赛项编号: GZ033 …

汽车智能座舱/智能驾驶SOC -1

看到华为&小康的 AITO问界M6、M7各种广告营销、宣传、测评、好评如潮水般席卷网络各APP平台。翻看了中信和海通对特斯拉M3和比亚迪元的拆解报告,也好奇华为的汽车芯片平台又能做出哪些新花样,下面是Mark开头,也学习下智能座舱和智能驾驶芯…

MISRA 2012学习笔记(5)-Rules 8.10

文章目录 Rules8.10 基本类型模型(The essential type model)8.10.1 原理8.10.2 基本类型(Essential type)Rule 10.1 操作数不得具有不适当的基本类型Rule 10.2 在加减法运算中,不得不当使用本质为字符类型的表达式Rule 10.3 表达式的值不得赋值给具有较窄基本类型或…

同一台Linux同时安装MYSQL5.7和MYSQL8(第二篇)

MYSQL8安装步骤 1、上传安装包 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz 2、解押 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz 并修改名称 [rootzonghe21 data]# tar -zxvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz [rootzonghe21 data]# mv -zxvf mysql-8.0.27-linu…

单线程的JS中Vue导致的“线程安全”问题

目录 现象分析原因 浏览器中Js是单线程的,当然不可能出现线程安全问题。只是遇到的问题的现象与多线程的情况十分相似,导致对不了解Vue实现的我怀疑起了人生… 现象 项目中用到了element-plus中的加载组件,简单封装了一下,用来保…

WSL + Docker容器,Windows上最爽的开发体验

为什么爽?举个例子,前端开发,不可避免要解决项目环境不一致的问题,比如每个项目依赖的node版本不一致,常规做法通过nvm等版本管理,这种方式要安装nvm,不同项目要切换版本动作,使用容…

linux 开发板以太网通过Ubuntu上外网方法

在开发板嵌入式设备,有一个mgbe网卡,用网线与连接soc的网卡,和外接网卡,将网卡usb接口插入电脑,选择接入到Ubuntu系统 在Ubuntu将能识别到这个外接网卡,这样就可以通过Ubuntu和soc通讯了, 如下…

xargs命令

xargs命令是将标准输入转换为命令行参数,默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。 xargs命令默认执行echo命令 为什么有了管道还需要这个命令…

c语言编程题经典100例——(6~10例)

1&#xff0c;计算一个数的立方 #include <stdio.h> int main() { int num, cube; printf("请输入一个整数&#xff1a;"); scanf("%d", &num); cube num * num * num; printf("%d的立方是%d\n", num, cube); return 0; } …

Windoes命令CMDpowershell操作

CMD&powershell命令操作 一 、cmd命令操作二、 Powershell命令操作1、powershell版本升级安装2、查询系统OS3、powershell测试访问网站一 、cmd命令操作 1、手动启动Defender服务 C:\Program Files\Windows Defender>cd C:\Program Files\Windows Defender\ #切…

一个基于RedisTemplate静态工具类

每次是用RedisTemplate的时候都需要进行自动注入实在是太麻烦了&#xff0c;于是找到一个讨巧的办法。 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.…

服务案例|故障频发的一周,居然睡得更香!

医院运维有多忙&#xff1f; 医院运维&#xff0c;听起来平平无奇毫不惊艳&#xff0c;但其中的含金量&#xff0c;可不是“维持系统正常运行”就能总结的。毕竟医院对业务连续性的超高要求&#xff0c;让运维面对的问题都是暂时的&#xff0c;下一秒可能就有新问题需要发现解…

双12电视盒子推荐:测评员解析目前电视盒子哪个最好

电视盒子不需要每月缴费&#xff0c;只需联网就可以收看海量视频资源&#xff0c;游戏、网课、投屏等功能让电视盒子的使用场景更丰富&#xff0c;我每年都会进行数十次电视盒子测评&#xff0c;本期要分享的是双十二电视盒子推荐&#xff0c;全面解析目前电视盒子哪个最好。 一…

通用返回类型定义

定义业务异常类&#xff1a; import lombok.AllArgsConstructor; import lombok.Data;Data AllArgsConstructor public class BusinessException extends RuntimeException{private String errorCode;private String errorMsg; }错误枚举类&#xff1a; public enum UnifiedR…

我对双指针算法认知

双指针算法是一种常用于解决数组或链表中的问题的算法思想。它的基本思想是使用两个指针在数组或链表中相互协作&#xff0c;以解决问题。双指针算法通常分为两种类型&#xff1a;快慢指针和左右指针。下面分别详细讲解这两种双指针算法。 1. 快慢指针 基本思想&#xff1a; …

思福迪 运维安全管理系统 test_qrcode_b 远程命令执行漏洞

思福迪 运维安全管理系统 test_qrcode_b 远程命令执行漏洞 一、漏洞描述二、漏洞影响三、网络测绘四、漏洞复现1.手动复现2.自动化复现3.python源代码 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任…