草庐IT

GitHub Copilot X:AI 协助编程的软件开发新时代来了!

微软技术栈 2023-04-03 原文

生成式人工智能代表了软件开发的未来。GitHub 与 OpenAI 合作创建了 GitHub Copilot,这是世界上第一个使用 OpenAI Codex 模型开发的大规模生成式人工智能开发工具。

作为一款 AI 辅助编程工具,GitHub Copilot 开启了软件开发的新时代。通过自动补全注释和代码,它让开发人员获得了前所未有的流畅编程体验。自推出不到两年以来,GitHub Copilot 已经编写了 46% 的代码,帮助开发人员提高了高达 55% 的编码速度。

3月22日,GitHub 官方发布新一代基于 AI 驱动的、跨时代代码编辑器 GitHub Copilot X,让AI 助手在整个开发生命周期中随时可用。

AI驱动的新一代开发体验

此次更新的 GitHub Copilot X

给开发者带来了哪些助力?

GitHub Copilot Chat & Copilot Voice

GitHub Copilot X 在产品中内嵌一个聊天窗口,把 GPT-4 融合到实际开发场景,并集成至 VS Code 和 Visual Studio 上。除了进行实时交互问答之外,它还可以完成诸如代码内容识别、报错信息显示等操作。通过这一功能,开发人员可深入分析和了解各个代码块的用途,快速生成单元测试,甚至还能一键修改 Bug。

GitHub Copilot X 也将加入语音转代码 AI 技术扩展—— GitHub Copilot Voice,开发人员可以通过对话,完成:代码跳转、控制 IDE、代码总结。

点我观看视频

 

Copilot for Pull Requests

开发者现可体验 GitHub 上首个由 AI 生成的 Pull Request 描述。一个清晰简洁的 PR 描述信息,能让代码审查者一目了然,快速了解代码变动情况,减少项目合并出错的可能性,并提升沟通效率。

 点我观看视频 

引入 GPT-4 模型后,Copilot 通过动态提取与分析代码的变更信息,自动生成描述。开发者只需在 PR 描述中插入标记,Copilot 便会自动识别,并进行扩展补写。支持的标记,主要有以下几种:

copilot:summary 为 PR 生成一段摘要总结

copilot:walkthrough 详细的更改列表,包括相关代码片段链接

copilot:poem 写一首诗来描述本次改动

copilot:all 自动生成以上所有内容

随着后续产品的更新迭代,Copilot 还会新增名为 Gentest 和 Ghost Text 的两大功能。

Gentest:通过 AI 来识别 PR 中可能缺少的测试,并自动帮助构建与生成测试。如果开发人员没有足够的测试覆盖范围,GitHub Copilot 会在他们提交 Pull Request 时向他们发出警告。

Ghost Text:在编写 PR 描述或文档时,提供内容自动补全功能。

 点我观看视频

 

GitHub Copilot for Docs

通过 GitHub Copilot for Docs,开发者可使用类似 ChatGPT 的聊天界面,提问有关文档、惯用代码或组织内部软件的问题,并获取 AI 即时生成的文档答案。它甚至能根据用户的不同编程水平、对该文档的了解程度,以及想要知晓的内容,返回不同的答案。

基于对话式接口的优势,GitHub Copilot 正在努力实现语义理解,以更好地输出个性化答案,为组织、团队、公司和个人开发者提供根据他们的代码库和文档进行定制的解决方案。

未来,GitHub Copilot 还将探索把资源索引扩展到除文档以外的领域,例如问题、拉取请求、讨论和维基,以便为开发者提供回答技术问题所需的一切资源。

 点我观看视频

 

GitHub Copilot CLI

除了处理 PR 请求与编写代码,命令行终端也是开发者日常工作必不可少的工具之一。但即使是最熟练的开发人员可能也很难记住许多命令的精确语法。现在 GitHub Copilot CLI 推出了 3 个 shell 命令:??git?gh?

??可以作为任意 shell 命令的通用 goto,在该命令后面输入相关描述,Copilot 便会列出最适用该描述的具体命令。

git?用于专门搜索以及调用Git。相比??, 它在生成 Git 命令方面要强大许多。如果你明确要用的是 Git 命令,那可以优先选择使用它。

gh? 结合了 GitHub CLI 命令的灵活性与查询界面的便捷性,让搜索变得更快捷、信息展示更清晰。

GitHub Copilot X 由 OpenAI 新发布的 GPT-4 AI模型提供支持。

从阅读文档、编写代码到提交 Pull Request、命令行改造,GitHub Copilot X 正在整个软件开发生命周期中颠覆开发者体验。结合微软的知识模型,GitHub Copilot 将利用不同企业的数据存储库,个性化定制 AI 协作编程,让每个创意想法都能在没有技术障碍的情况下变为现实。

有关GitHub Copilot X:AI 协助编程的软件开发新时代来了!的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  4. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  5. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  6. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  7. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  8. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  9. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  10. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

随机推荐