本文正在参与技术视角深化 ChatGPT 征文活动

信任咱们或多或少都体会过了 ChatGPT,或许更进一步,在 IDE 中也装上了对应的插件

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

不过真正在 coding 中用上的频率有多高呢?可能大多数人都只是尝个鲜然后就忘了,至少就我而言,仍是 copilot 帮我提升了更多的效率

  • 不想自己写办法时简单写个注释让其生成
  • 类似的变量名帮助推断
  • 依据上下文比你还先想出下一步代码

感觉像是自己多了一个不拿薪酬、干活还卖力、如臂指派的小弟

不过小弟的确有自己的局限性,基本只精干一些估测代码的体力活,优化、查漏补缺等等脑力活都被 ChatGPT 抢光了

不过好消息是,Copilot 系列又有新小弟了,专门干的便是脑力活。也便是 GitHub Coilpot Labs 插件,怎样装置文章终究一段再说,咱们先看看用起来感觉怎样样,值不值得装置

一、EXPLAIN

第一个功用是解释

简单来说便是针对选中的代码,给出一些特定的回应

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

EXPLAIN 有多个预设选项,咱们依次介绍:

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

1. Custom

自定义,便是指定 Copilot 生成自己想要的的注释,能够充分发挥自己的想象,具体用法看后面几个选项就能清楚了,所以就不在此赘述

2. Explain code

不同选项的仅有差异其实便是中间 Advanced 部分,每一个选项都对应了不同的 Prompt,当然你也能够自己修正(Custom 选项便是 Prompt 为空)

非常明显,逻辑便是针对你选中的代码,用 Prompt 里的问题问让 Copilot 给出答复

比方下面的 Prompt 便是:以下是对上述代码的解释:

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

3. Code does following、Code does following(English)

和上一个选项差不多,答复会更详细

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

4. Show example code

以下是调用此函数的示例:

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

5. 自定义

看了上面几个预设,想必咱们都有了自定义的思路了,比方:

a. 直接用中文发问

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

b. 罗列对应的输入、输出

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

c. 查漏补缺

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

6. 总结

现在来说有几个比较影响使用的问题:

  • 无法保存自定义 Prompt,这应该是比较基础的功用,应该后续会增加吧
  • 挑选代码有约束,最多 2000 个字符,不太够用

二、LANGUAGE TRANSLATION

这个功用很好了解,便是翻译不同的代码语言,例如把 JavaScript 翻译成 Python

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

一些有趣的用法

1. JS、TS 转换

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

2. Vue、JSX、Svelte 转换

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

3. scss、less 转换

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

三、BRUSHES

总算来到了咱们的重头戏「画笔」。选中代码,再选中对应功用的「笔」,就能够给这部分代码加上其功用

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

这些功用依次是:

1. READABLE 加强可读性

a. 优化代码

例如一个写得很烂的办法,READABLE 之后就有了更高的可读性。假如不满意本次成果,你能够撤销从头履行,或许能够对优化过的代码再次优化到达你想要的终究成果

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

b. 解混淆代码

把上面的代码混淆之后再 READABLE,能够康复可读状态

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

2. ADD TYPES 增加类型

相当于 JS -> TS

3. FIX BUG 修正 bug

例如此处修正了天数没取整的 bug

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

4. DEBUG 便利 debug

主动增加输出,便利 debug

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

5. LIST STEPS 注释每一句代码

注释每一句代码

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

6. MAKE ROBUST 提高代码健壮性
GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

7. CHUNK 拆分代码

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

8. CUSTOM 自定义

以一个段恳求接口的代码为例

// 恳求一些随机数据
// 用于测验
const getMockData = (url, options) => {
    return new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest()
        xhr.open('GET', url)
        xhr.onload = () => {
        if (xhr.status === 200) {
            resolve(xhr.response)
        } else {
            reject(xhr.statusText)
        }
        }
        xhr.onerror = () => {
        reject(xhr.statusText)
        }
        xhr.send(options)
    })
}

选中之后点击 CUSTOM,会呈现一个 INPUT,你能够指挥 COPILOT LABS 做任何事(之前那些预设就相当于一些设定好的输入)

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

a. 重构代码

输入 用 axios 从头,一起支撑 post、get 办法

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

b. 按要求修正

输入 用 react hooks 方式封装

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

c. any thing

其实上面干的两个事都算「按要求修正」,说白了就和 ChatGPT 相同,你让他干啥都行

四、TEST GENERATION

终究一个功用是生成测验用例,而且能够直点击 Run this test 测验(要求当前工作区或许全局有对应的依靠)

这个功用现在没用成功过

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

五、装置

这么好的东西怎样用到呢,其实官网现已说得很清楚了

你有必要在Labs旁边装置GitHub Copilot的主要扩展。2 你需求注册并承受GitHub Next预发布答应条款。

  • 一个有用的 GitHub Copilot 订阅 – An active GitHub Copilot subscription. Visit the Copilot Quickstart to learn more.
  • 有必要装置有 GitHub Copilot 插件 – You must have the main extension of GitHub Copilot installed alongside Labs.
  • 注册并承受 GitHub Next 预发布答应条款 – You’ll need to sign up and accept the GitHub Next Pre-Release License Terms.

GitHub Copilot Labs 体验「收手吧,外面全是 ChatGPT」

点击 Sign up for Copilot Labs >

终究在 vscode 里装置 GitHub Copilot Labs 插件,就能够开端体会了~

总结

整个体会下来,其实功用并没有多新鲜,特别是在 ChatGPT 3.5 现已呈现的情况下,上述一切功用都能够经过和 ChatGPT 对话来完成

可是实践 coding 过程中,你得把代码复制到对应的页面(当然,大部分 ChatGPT 插件也有了很多类似的预设发问),生成的成果需求你张贴回来,或许说预设的发问没其实并没有那么有用…

而 GitHub Copilot Labs 给这些问题提供了一个比较好的解决方案,使用起来更无感,预设更有用

但无论是哪个东西,都现已完全改动了我的编码习惯

以前需求写一个复杂办法,肯定是打开搜索引擎,然后找参考,找到了还得一行行看是不是靠谱,假如找不到或许只要一部分满意需求,简直都得自己重写。一不小心半响就过去了

现在,只用几行注释、几个阐明、定义几个出入参数。就能够主动生成我想要的办法,针对不满意的当地也能够局部再生成。代码、类型、文档、单测一整套下来都花不了 10 分钟

咱们对于 AI 东西,现已不能只满意于看几篇文章然后表示一下赞叹又或是上手体会个几分钟了。而是应该像学习使用 IDE、使用 GIT、学习写代码相同来学习 AI 东西的使用

AI 改动工作和日子,现已不是未来而是现在,乃至现已是过去了