总览
最近, 联手 发布了 AI 编程神器 预览版。它基于 GPT-3 自回归语言模型,我们只需要编写一个好的函数名或注释,它就会自动编写好细节代码。这并非简单的智能提示或代码片段,而是真正的代码逻辑!
比如你要编写一个从 URL 中获取查询参数的方法,通常我们就面向 和 编程了,而现在,你只需要写个好的函数名即可:
注册申请
预览版暂未公开使用,需提交申请,使用 账号登录。审核会参考你 的仓库和活跃度等因素,我在 7.15 下午申请,7.17 早上申请通过。预览版在 ///Ruby/Go 几门语言下的表现最好,官网展示了很多例子,大家可以去参考,本文以 为例。
审核通过会发送两份邮件。一份是使用指引,点击 会跳转到 的插件下载地址。另一份是邀请你对/-仓库进行协同共建,感兴趣可加入。
上手体验
首先按照指引,安装 插件.,然后登陆 账号就可以激活使用了。
从官网的描述看,目前 提供的特色功能有:强大的代码智能补齐、将注释转换为完整的代码逻辑块、自动填充重复代码、自动编写单元测试等。
AI 写代码
假设现在界面上有个 id 为 my- 的按钮,点击按钮,计算两个两个日期间隔的天数并打印。代码逻辑就是:编辑 index.js,获取 id 为 my- 的按钮,然后添加 Click 事件。
首先我们尝试用写注释的方式生成代码。 不仅支持英文注释,也支持中文注释:
而当你继续输入时,AI 会推测出你接下来可能是要添加 Click 事件:
我们先定义一个计算两个日期间隔天数的方法 s,这次我们不写注释,而是直接写函数名:
如果对生成的代码不满意,将鼠标悬浮在智能提示处,可以切换选择不同的算法方案:
也可以点击 Open ,这样会并排显示 所有的可选方案,点击 就应用到了实际代码中:
以上就是 的核心功能:AI 代码生成。实际体验中,AI 的速度普遍都非常快,偶尔会卡顿一下,但基本都是秒级的响应速度。
自动生成单元测试用例
s 方法写完后,我们可以给它编写单元测试用例。这里我没有写任何注释,是 自动生成的单测用例:
也可以先编写描述性的注释,然后根据注释自动生成:
不过这里生成的日期总是和我注释里写的差一个月,注释写 7 月生成 6 月,写 6 月生成 5 月…原因不明。
官网还有个测试 React 计数组件 的例子,我把英文注释改成了中文注释,同样是可以的:
“重复代码”自动填充
这里的”重复代码”更多的是指 识别出了你正在编写的某种算法模式,然后预判你接下来的动作。如官网的例子,在 time.js 中编写日期之间的对应关系:
再比如编写一个标识各语言注释的变量: