GitHub Copilot 终极详细介绍

编写代码通常是一项乏味且耗时的任务。现代开发人员一直在寻找新的方法来提高编程的生产力、准确性和效率。

像 GitHub Copilot 这样的自动代码生成工具可以使这成为可能。

GitHub Copilot 到底是什么?

GitHub Copilot 于 2021 年 10 月推出,是 GitHub 的较新工具之一。Copilot 被称为“人工智能结对程序员”,它使用人工智能在编辑器中自动生成代码。它可作为 Visual Studio Code、JetBrains IDE 套件和 Neovim 的扩展。

但 GitHub Copilot 不仅仅是一个自动完成解决方案。根据您正在编写的代码中的上下文线索,Copilot 会建议行甚至整个函数。对于开发人员来说,这是一种更快、更轻松的方式来创建测试、探索 API 和解决问题,而无需不断地在其他地方寻找答案。

一旦您开始使用 GitHub Copilot 插件,该工具就会自动适应您编写代码的方式。

Copilot 速度非常快,并且在您编写代码时与您的工作流程无缝配合。当您开始掌握它的窍门时,只需单击键盘即可自动完成您需要的代码。

与市场上类似的解决方案不同,GitHub Copilot 为您提供完全的控制权——因此得名。您可以接受或拒绝代码、手动编辑建议以及循环选择替代建议。由于该工具会适应您的编码风格,因此它将来为您提供的建议将继续变得更加智能。

GitHub Copilot 的工作原理

GitHub Copilot 由 OpenAI Codex 提供支持。自动生成的建议来自文件中的上下文,例如函数名称、代码注释、文档字符串、文件名、光标位置等。根据这些信息,Copilot 建议开发人员只需按键盘上的 Tab 键即可接受的代码片段。

该人工智能工具可以理解 TypeScript、Python、JavaScript、Ruby 和数十种其他常见语言。

这是因为人工智能建议来自 GitHub 公共存储库中的开源代码。它会分析这些信息,然后尝试根据您所写的内容找到最佳的解决方案。

与其他解决方案相比,GitHub Copilot 的独特之处在于它理解自然语言的能力。这包括编程语言和人类语言。

值得注意的是,GitHub Copilot 并没有编写完美的代码。该工具尽力尝试理解开发人员的意图。但是,您会注意到有些建议并不总是有效,甚至没有意义。

GitHub Copilot 不会测试它向您建议的任何代码。这些建议可能实际上无法编译或运行。因此,在认为代码可用之前,您仍然需要仔细检查和测试代码。

为了充分利用 GitHub Copilot,您应该将代码分割成更小的函数。确保您在工作时编写了良好的注释和文档字符串。始终为函数参数使用有意义的名称,因为这将使 Copilot 更容易理解您的意图。

GitHub Copilot 似乎对使用不熟悉的框架和库的开发人员影响最大。Copilot 可以在几秒钟内为您导航,而不是您自己搜索开源文档。

总的来说,GitHub Copilot 可能是市场上最好的自动完成工具。除了基本建议之外,它还为开发人员提供了许多不同的解决问题的方法。您获得的代码片段建议范围非常广泛,您可能不需要使用 Stack Overflow 来查找答案。

但是,重要的是您要了解 GitHub Copilot 只是一个工具。它甚至还没有接近取代人类开发人员的需求。您不能仅依赖 Copilot,仍然需要开发人员接受建议并进行更改。

让我们仔细看看 Copilot 可用于的不同示例。这些示例将帮助您更好地了解该工具的功能和多功能性:

示例#1:将注释转换为代码

GitHub Copilot 最酷的功能之一是它能够接受您的评论并将其转化为代码。只需创建一条描述您需要的逻辑的评论,Copilot 就会自动为您生成建议。

看起来是这样的:

在本例中,评论只是简单地说:“列出某个组织的 GitHub 存储库的所有名称。”

副驾驶立即提出了建议。如果您正在编写此代码,您所需要做的就是单击 Tab 接受它。正如你所看到的,这条评论是用简单的英语写的。GitHub Copilot 仍然理解其意图并提出了适当的建议。

这与我们之前提到的一些事情有关——总是写好的注释和文档字符串。如果您的评论是用不自然的语言写成的,Copilot 可能很难理解适当的意图。

示例 #2:自动填充重复代码

GitHub Copilot 是开发人员加快编写重复代码的理想方式。如果您正在编写大量样板代码,则只需输入一些模式示例即可。然后副驾驶将处理剩下的事情。

这是一个非常简单的示例,向您展示其工作原理:

在此示例中,常量变量以秒开头。一旦第二行将 const 显示为分钟乘以秒,Copilot 就会识别该模式并自动完成小时、天、周、月和年的代码。

只需单击一下即可编写这五行附加代码。从规模上看,这将节省大量的编程时间,尤其是对于较大的块。

示例#3:运行测试

如前所述,GitHub Copilot 并未实际测试其建议的代码。但话虽如此,您可以使用它来建议与您的代码实现相匹配的测试。

这是快速导入测试单元包的好方法。下面是一个从简单的英语注释生成测试的示例:

您仍然需要验证代码是否有意义,但它是比您自己完成此代码更快的替代方案。

示例#4:探索陌生领域

这个特殊的用例可以说是 Copilot 的最佳功能。对于开发人员来说,这是一种在不熟悉的语言或框架领域进行导航的好方法。

例如,假设您想绘制散点图。根据您使用的编程语言,编写此代码的方式会有很大差异。下面是该代码在 Python 中的示例:

即使您有丰富的 Python 编写经验并且能够熟练使用,此自动完成功能仍然可以节省您的时间。

但为了便于讨论,假设您需要用 JavaScript 编写散点图,但您对这种编程语言不是很熟悉。在这种情况下,GitHub Copilot 可以满足您的需求。看看它可以在这里为您生成什么:

要在没有 Copilot 的情况下编写此内容,您将被迫手动搜索公共存储库以获取示例。或者您可能会使用 Stack Overflow 等资源来寻找答案。但这两种选择都是乏味且耗时的。

经验丰富的开发人员喜欢在使用不熟悉的语言时使用 Copilot。即使 Copilot 的建议并不完美,它仍然可以获得正确的基本语法。当涉及到常见的习惯用法、库函数等时,它还会为您指明正确的方向。Copilot甚至可以作为程序员的自助教学工具。

示例#5:完全使用 Copilot 创建应用程序

除了 Copilot 功能的广泛示例之外,我们还希望找到一个使用 Copilot 进行创造的人在现实生活中的成功故事。我们发现了一个关于 LogRocket 的优秀案例研究,由一位英国软件工程师编写。

让我们仔细看看这个故事的亮点。

程序员 Evgeny Klimenchenko 决定创建一个简单的测试应用程序,看看 Copilot 是否可以处理该项目。该应用程序是一个随机报价生成器,还显示报价的情绪。

为了真正测试 Copilot,Klimenchenko 告诉自己,他不会在 Google 或 Stack Overflow 上搜索解决方案。他只会依赖副驾驶的建议。他也不会编写新的代码。但是,他允许自己编写变量、注释和函数名称,并对建议进行编辑。

在一周内,Copilot 帮助 Klimchenko 创建了一个简单的报价生成应用程序。这是非常基本的,对于任何特定的东西来说并没有真正的用处。然而,案例研究证明了副驾驶的功能正如广告中所宣传的那样。

如何开始使用 GitHub Copilot

如果这是您第一次使用 GitHub Copilot 并且不确定该怎么做,那么您来对地方了。以下步骤不仅会告诉您如何使用 GitHub Copilot,还会帮助您取得成功。您需要执行以下操作:

第 1 步:缩小用例和目标范围

从技术上讲,这不是使用 Copilot 的要求。但如果您刚刚熟悉该工具,那么这样做绝对符合您的最佳利益。

不要只是抱着“让我们看看会发生什么”的心态来接触 GitHub Copilot。这可能会让您不知所措,并且您将无法充分利用该工具的功能。

例如,您可能决定严格使用 GitHub Copilot 来自动填充样板代码。其他的一切你都会像往常一样自己写。但是,当您遇到可以选择自动完成重复行的情况时,您可以利用 Copilot。

或者也许你处于完全相反的一端。您可能不想使用 Copilot 来协助您进行常规编程工作,而是希望运行类似于我们之前讨论的案例研究的实验。

许多开发人员在使用不熟悉的编程语言时会利用 GitHub Copilot。Copilot 将帮助他们掌握正确的语法并对库函数有基本的了解。

一旦您确定了计划如何在下一个项目中使用 Copilot,其余步骤就会容易得多。

第 2 步:安装 GitHub Copilot 扩展

GitHub Copilot 不标配任何编辑器。因此,您需要先添加扩展程序,然后才能开始使用它。

您可以使用以下方法来安装 Copilot,具体取决于您的首选编辑器:

  • GitHub Copilot — Visual Studio 代码市场
  • GitHub Copilot — JetBrains 市场
  • 适用于 GitHub Copilot 的 Neovim 插件

我们认为 GitHub Copilot 扩展在 Visual Studio Code 中效果最佳。这是因为 Visual Studio Code 也可以在 GitHub Codespaces 中运行。

安装扩展程序后,Copilot 将提示您通过登录 GitHub 授权该插件。一旦获得授权,您应该会自动被发送回编辑。如果扩展已正确安装,您应该在状态面板中看到 Copilot 图标。

第 3 步:学习 GitHub Copilot 键盘快捷键

您应该熟悉 GitHub Copilot 的常见键盘快捷键。它们会略有不同,具体取决于您使用的是 macOS、Windows 还是 Linux。

以下是您应该了解的:

  • 接受内联代码建议 -选项卡
  • 拒绝内联代码建议 - Esc
  • 显示下一个建议 - Alt + ] 或 Option (⌥) + ]
  • 显示之前的建议 — Alt + [ 或 Option (⌥) + [
  • 触发建议 — Alt + \ 或 Option (⌥) + \
  • 在单独的窗格中打开 10 条建议 - Ctrl + Enter

将它们放在身边,作为您工作时的快速参考。

第 4 步:开始编写代码并查看建议

现在您只需像平常一样开始工作即可。

在您编写时,您将开始看到 GitHub Copilot 根据上下文自动建议自动填充选项。是否接受或拒绝这些选项取决于您。

如果您不喜欢 Copilot 提供的内容,您可以随时查看其他建议,看看这些选项是否更相关。Copilot 肯定需要一些时间来适应,但你用得越多就会掌握它的窍门。

第 5 步:编辑并测试您的代码

如前所述,Copilot 并不完美。所以你不能只看表面上的建议并假设一切都是完美的。

您可能需要对代码进行一些小的编辑。与往常一样,您应该始终在将代码提交到项目之前运行测试。

GitHub 通过审查开源存储库中的一组 Python 函数来对 Copilot 的准确性进行基准测试。他们消除了函数体并提示 Copilot 填写它们。Copilot 在第一次尝试时就正确地完成了 43% 的函数。当允许 Copilot 尝试 10 次时,代码的正确率为 57%。

如果此基准测试可以表明 Copilot 在您使用时的表现,那么您很可能需要对建议进行至少一些细微的修改。

副驾驶 X 简介

2023 年春季,GitHub推出了 Copilot X,一个“易于使用的人工智能助手”。据该公司称,它采用了 OpenAI 的 GPT-4 模型,并为 Copilot 引入了聊天和语音功能,让 Copilot 可以通过Pull requests、命令行和文档来回答项目问题。 

这使得“上下文感知对话”成为可能。开发人员可以要求 GitHub Copilot 解释一段代码、修复错误,甚至生成单元测试。 

截至 2023 年 7 月,其聊天 AI 功能已在有限的公开测试版中向企业公司和组织提供。有关 GitHub Copilot X 的更多信息,请访问此处。 

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

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

相关文章

《新传奇》期刊投稿论文发表

《新传奇》杂志是经国家新闻出版总署批准、面向国内外公开发行的综合性社科期刊,由湖北省文联主管,湖北今古传奇传媒集团有限公司主办,湖北优秀期刊。本刊旨在坚守初心、引领创新,展示高水平研究成果,支持优秀学术人才…

挑战Python100题(8)

100+ Python challenging programming exercises 8 Question 71 Please write a program which accepts basic mathematic expression from console and print the evaluation result. 请编写一个从控制台接受基本数学表达式的程序,并打印评估结果。 Example: If the follo…

【已解决】 ubuntu apt-get update连不上dl.google.com

在终端使用apt-get update时,连接dl.google.com超时,一直卡在0%,原因是当前ip无法ping到google(墙)。 解决方法: dl.google.com国内可用IP 选一个,然后按以下命令操作: cd ~ vim …

Python跨年烟花秀

写在前面 今年跨年怎么过呢~博主用python的pygame实现了一场炫酷的烟花秀,一起来看看吧! 环境需求 python3.11.4及以上PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境…

yolov8实战第四天——yolov8图像分类 ResNet50图像分类(保姆式教程)

yolov8实战第一天——yolov8部署并训练自己的数据集(保姆式教程)_yolov8训练自己的数据集-CSDN博客在前几天,我们使用yolov8进行了部署,并在目标检测方向上进行自己数据集的训练与测试,今天我们训练下yolov8的图像分类…

很实用的ChatGPT网站——httpchat-zh.com

很实用的ChatGPT网站——http://chat-zh.com/ 今天介绍一个好兄弟开发的ChatGPT网站,网址[http://chat-zh.com/]。这个网站功能模块很多,包含生活、美食、学习、医疗、法律、经济等很多方面。下面简单介绍一些部分功能与大家一起分享。 登录和注册页面…

nvm 的安装及使用 (Node版本管理器)

目录 1、nvm 介绍 2、nvm安装 3、nvm 使用 4、node官网可以查看node和npm对应版本 5、nvm安装指定版本node 6、安装cli脚手架 1、nvm 介绍 NVM 全称 node.js version management ,专门针对 node 版本进行管理的工具,通过它可以安装和切换不同版本的…

二分查找--二分查找算法(朴素二分模板)

个人主页:Lei宝啊 愿所有美好如期而遇 本题题目链接https://leetcode.cn/problems/binary-search/description/ 算法原理 二段性,我们发现这个数组可以找到某种规律将其分为两段,不断划分下去,最终可以找到target 图示 我们分…

编程笔记 html5cssjs 004 我的第一个页面

编程笔记 html5&css&js 004 我的第一个页面 一、基本结构二、HTML标签三、HTML元素四、HTML属性五、编写第一个网页六、使用VSCODE小结 开始编写网页,并且使用第一个网页成为一个母板,用于完成后续内容的学习。有一个基本要求,显示结…

“产品经理必懂的关键术语“

产品经理是现代企业中非常重要的一个角色,他们负责制定产品策略、规划产品开发流程、管理产品质量和用户反馈等等。然而,对于产品经理来说,了解并掌握相关的专业术语是非常重要的。本篇文章会介绍一些产品经理需要掌握的专业术语,…

系统启动流程 - 理解modules加载流程

​编辑 Hacker_Albert    202 linux 启动流程module加载 1.启动过程分为三个部分 BIOS 上电自检(POST)引导装载程序 (GRUB2)内核初始化启动 systemd,其是所有进程之父。 1.1.BIOS 上电自检(POST) BIOS stands for…

详解Keras3.0 Layer API: Dropout layer

Dropout layer 图1 标准的神经网络 图2 加了Dropout临时删除部分神经元 Dropout层的作用是在神经网络中引入正则化,以防止过拟合。它通过随机丢弃一部分神经元(如图2)的输出来减少模型对训练数据的依赖性。这样可以提高模型的泛化能力&#x…

VSCode中的注释标签

2023年12月30日,周六上午 在软件开发中,开发者会使用这些标签来提供关于代码功能、版本信息、作者、API使用说明等方面的额外信息。 这些标签的含义通常是: apiNote: 提供有关API使用的注释或说明。author: 标识代码作者的信息。category: …

jvm实战之-常用jvm命令的使用

各命令的使用 JMAP 1、查看内存信息,对象实例数、对象占有大小 jmap -histo 进程号>./log.txt2、查看堆的配置信息和使用情况 jmap - heap 进程号3、将堆的快照信息dump下来,使用java自带的jvisualvm.exe打开分析 jmap -dump:formatb,filedump.h…

启封涂料行业ERP需求分析和方案分享

涂料制造业是一个庞大而繁荣的行业 它广泛用于建筑、汽车、电子、基础设施和消费品。涂料行业生产不同的涂料,如装饰涂料、工业涂料、汽车涂料和防护涂料。除此之外,对涂料出口的需求不断增长,这增加了增长和扩张的机会。近年来,…

前端的 js

js 点击按钮修改文字 <!DOCTYPE html> <html> <head></head><body><h2>Head 中的 JavaScript</h2><p id"demo">一个段落。</p><button type"button" onclick"myFunction()">试一…

HUAWEI华为笔记本电脑MateBook D 14 2022款 i5 集显 非触屏(NbDE-WFH9)原装出厂Windows11系统21H2

链接&#xff1a;https://pan.baidu.com/s/1-tCCFwZ0RggXtbWYBVyhFg?pwdmcgv 提取码&#xff1a;mcgv 华为MageBookD14原厂WIN11系统自带所有驱动、出厂状态主题壁纸、Office办公软件、华为电脑管家、华为应用市场等预装软件程序 文件格式&#xff1a;esd/wim/swm 安装方式…

Solidworks学习笔记

本内容为solidworks的学习笔记&#xff0c;根据自己的理解进行记录&#xff0c;部分可能不正确&#xff0c;请自行判断。 学习视频参考&#xff1a;【SolidWorks2018视频教程 SW2018中文版软件基础教学知识 SolidWorks自学教程软件操作教程 sw视频教程 零基础教程 视频教程】 h…

JY901S 9轴姿态角度传感器模块

JY901S 9轴姿态角度传感器模块 JY901S 简介模块特性引脚说明IIC通讯IIC读写寄存器代码示例 JY901S 简介 模块集成高精度的陀螺仪、加速度计、地磁场传感器&#xff0c;采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法&#xff0c;能够快速求解出模块当前的实时运…

Nacos2.1.2改造适配达梦数据库7.0

出于业务需求&#xff0c;现将Nacos改造适配达梦数据库7.0&#xff0c;记录本次改造过程。 文章目录 一、前期准备二、适配流程1、项目初始化2、引入驱动3、源码修改 三、启动测试四、打包测试 一、前期准备 Nacos源码&#xff0c;版本&#xff1a;2.1.2&#xff1a;源码下载…