在如今这个人工智能高速发展的时代,每个行业都在被AI技术影响而改变。层出不穷的AI辅助工具,让我们看到了机器正在取代一部分基础的日常工作。对于我们开发者而言,当前最炙手可热的就是GitHub Copilot,市面上最好的开发者辅助工具。GitHub Copilot所提供的代码补全、建议、解释等能力非常强大,可以有效地提高编程速度。但是,GitHub Copilot是基于OpenAI所构建,后者的成本并不小,所以GitHub Copilot成为一款付费工具是非常自然的。

那么,对于预算有限的开发者而言,是否有合适的免费平替呢?答案是肯定的!今天,就给大家推荐最近我一直在用,且觉得还不错的插件:通义灵码。推荐的理由,我总结为以下几点:

  1. 极低的上手门槛
  2. 强大的代码补全和编码提示
  3. 快捷好用的智能问答

极低的上手门槛

一些众所周知的原因,相信体验过GitHub Copilot的开发者一定都是经过一番折腾才用上其强大能力的。这对于一些初学者用户来说门槛非常高,同时对于一些有审查要求的环境更是不可能使用。

与此相比,通义灵码的上手门槛极低:

  • 安装简单:用户只需要在JetBrains系IDE或VS Code的插件市场里搜索:TONGYI Lingma,就能完成一键安装

  • 极易上手:无需配置,自动提示。插件在开发者编码过程中会自动根据上下文做出提示建议,如提示建议不错,直接按Tab采纳即可。如果需要手动唤出提示,也只需要通过快捷键+P快速弹出提示(Windows快捷键:Alt + P)。除了这两个最常用的操作之后,还有一些操作可参见下表:
macOS Windows
接受行间代码建议 Tab Tab
废弃行间代码建议 esc esc
查看上一个行间推荐结果 [ Alt [
查看下一个行间推荐结果 ] Alt ]
手动触发行间代码建议 P Alt P

强大的代码补全和编码提示

代码补全是开发者日常工作最高频的操作,虽然很多强大IDE工具都自带了代码补全的能力,但这也仅限于一些语法层面的简单补全,不包含联系编码上下文所推理出的,更有贴近用户编码意图的智能补全和提示。所以,这也是现在很多AI辅助工具吸引人的地方,它们可以提供更为出色的,甚至惊艳的补全效果。

那么通义灵码在代码补全方面,是否可以平替GitHub Copilot呢?这里DD根据很多博主介绍GitHub Copilot的场景来测试了一下,供大家参考:

行级补全

之前讲过,行级补全在大部分IDE中已经包含,但AI工具的行级补全更为强大,它的强大之处在于能够根据你的输入来推理逻辑补全。

比如:我要定义一个B站视频的URL,只要参数名中含有B站视频URL相关的描述,就会直接给出模版。这样的能力是完全不同于IDE所提供的行级补全的。

函数级补全

函数级补全是DD看到GitHub Copilot演示案例中最常见的强大能力,开发者只需要输入有含义的函数名称,具体的实现就自动提示了:

所以,必须在通义灵码中也尝试一下!

先尝试了一下简单的冒泡排序:

轻松完成!

再尝试一下稍微有点难度的快排算法:

似乎失败了?只给出了一些简单提示,并没能得到完整的逻辑。后面,DD又尝试了几次,最终获得了一个完整结果,具体如下:

所以,在函数级补全这个功能上,可能还存在一些差距,有待后续提高吧。

自然语言补全

自然语言补全的主要场景就是写注释,AI工具自动生成代码。

这里DD也找了个场景测试了一下。比如下面是Spring Boot中一个文件上传的后端处理逻辑,我尝试通过自然语言的方式来描述逻辑,通义灵码迅速补全了与注释相关的代码:

上下文感知能力

对于上下文的感知是AI工具的重要特色,也是这类工具时不时惊艳到我们的核心。

比如,下面这种场景,在我第一碰到时,还是有被AI的理解能力所吓到:

可以看到,当我要为这个Controller添加Swagger的API说明时,它居然理解了这个Controller内做的都是微信支付的操作,所以给出了tags="微信支付"的提示。

随着这段时间的使用,出现过很多惊艳到我的补全提示,比如当我要写一个操作FTP的API时,出现了这样一幕:

可以看到,在我创建了FtpController之后,通义灵码自动找到了同项目中的FtpService,并给出了依赖提示,这一操作非常符合预期。之后,通过换行操作,通义灵码又给出了进一步的提示,这步提示也非常神奇,因为它的内容已经不仅仅是对当前上下文的理解,而是结合上下文与依赖内容的理解,并给出了调用依赖内容的提示。

通过这段时间的实践,我认为通义灵码的感知能力已经非常不错,它可以很好的理解项目中的各个元素,并找到它们之间的关系,然后在开发者编码过程中给出一些可能需要的提示。同时,我也发现养成良好编码习惯的优势也在这里有所体现。因为在拥有良好项目结构和命名规范的工程下编码时,此类AI工具给出的提示就相当有水准,也许这样更有助于AI理解我们的工程吧。

快捷好用的智能问答

通义灵码插件在IDE中自带一个智能问答的窗口,具体位置和基本使用方法如下:

图中我还问了一个问题:让通义灵码帮我写一个文件操作类,它就给了我一个不错的代码封装和使用案例。如果你觉得不错的话,就可以通过回答右上方的按钮,以不同的方式添加到工程中:

是不是很棒呢?要知道GitHub的Chat可不是直接可以用的,相信还有不少小伙伴还在排队吧?

通义灵码的智能问答窗口除了处理基本问答之外,其实还有一些更有意思的功能,比如:解释代码和生成单元测试

上面我们体验了代码补全能力,但是它补全的内容到底对不对呢?必须赶紧验证一下,顺便再体验一下通义灵码的另外2个实用功能:

  • 解释代码
  • 生成单元测试

下面就来看看上面生成的能否经受住它自己的考验 _

操作很简单,只需要选中上面生成的代码片段,点击鼠标右键,可以看到解释代码和生成单元测试:

先来试试解释代码,点击之后会在IDE右侧弹出问答框,具体如下:

没啥问题,通过第一关考验!

下面再尝试一下:生成单元测试。马上就获得了如下代码:

直接添加文件之后,运行起来。成功通过测试!上面自动补全的代码是正确的!

总结

最后,聊聊这段时间使用通义灵码的感受。其实,刚开始尝试的时候也是碰到一些问题,尤其对于关于AI辅助的补全能力,会有一些不太适应。可能补全能力与项目内容和自己日常的编码习惯有关,随着每天不断的使用,插件似乎在理解项目内容和我的习惯,并不断给出更让我满意的提示内容。所以,这个使用过程是越用越顺的。现在已经是我必不可少的效率神器了。

虽然,通义灵码总体能力上离GitHub Copilot还有一些差距,但大部分辅助编码能力已经非常接近GitHub Copilot。同时,它的生成速度很快,而且跟IDE适配很好,ide里直接chat也很爽,加之阿里通义千问模型的支持。在一众免费的AI编码辅助工具之中脱颖而出,可以说是GitHub Copilot的最佳平替了。

如果您正在寻找AI辅助编码工具,但又觉得GitHub Copilot上手折腾麻烦或者觉得太贵,那么建议免费尝试一下通义灵码,相信不会让你失望。另外,DD看到社区有其他开发者反馈初学者使用非常丝滑,尤其是对于Python。所以,如果你是初学者或者Pyhon开发,那么也推荐试试。

欢迎关注我的公众号:程序猿DD。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源

找到了!GitHub Copilot的最佳免费平替的更多相关文章

  1. GitHub 上 10 款免费开源 Windows 工具

    GitHub 上 10 款免费开源 Windows 工具 GitHub 是如今所有开源事物的中央仓库, 这个网站最近发布了一个叫做<2016 Octoverse  状态报告>,详细列出了从 ...

  2. 利用GitHub和Hexo打造免费的个人博客

    每个程序猿都需要一个个人博客,目前广泛出现在大家视野里的有CSDN.博客园.简书,但是他们却没有给用户一个专属的站点.一个好记的域名.你需要一个https://xxx.xxx.xxx/格式的网址,一个 ...

  3. 5个最佳免费Linux杀毒软件

    5个最佳免费Linux杀毒软件 Linux的防病毒软件,开玩笑吧?Linux不是很安全吗?很多Linux新手都这样认为,看到标题不要犹豫,读完全文你就会从中找到答案. 首先,Linux比其它操作系统更 ...

  4. 【全文转载】Precision Helper:最佳免费 CHM 制作软件

    跳至内容 善用佳软 IT义工的个人博客: 善用佳软= (善意+善于)应用优秀软件 xbeta= x(未知数)+β(改进测试版) Precision Helper:最佳免费 CHM 制作软件 许多用户都 ...

  5. Github Copilot 比在座各位更会写代码。jpg

    之前大佬和我安利过 Copilot, 作为一个能用就行的践行者, 我一贯对这些东西都不太感兴趣. 就如我多年VS Code写各种编程语言, jetbrains 全家桶我都懒得搞~ 不过最近看到过Cha ...

  6. 年度榜单:2013年最佳免费 PSD 设计素材揭晓

    <年度榜单>系列继续给大家带来2013年度发布的好东西,这篇文章要给大家分享的是本年度最佳的12套精美的 PSD 设计素材,你可以免费下载使用.这些免费素材不仅能帮助他们节省大量的时间,而 ...

  7. 利用服务器+jsDelivr+GitHub搭建咱的免费图床

    前言 有人就问了你这个标题写错了?不应该是PicGo+jsDelivr+GitHub搭建咱的免费图床吗? 2333,是一个上传程序啊,不系写错了. 程序介绍 目前程序已实现两种模式上传到GitHub或 ...

  8. Github Copilot 结合python的使用

    之前提交的github copilot技术预览版申请,今天收到准入邮件,于是安上试一试这个准备把我送去电子厂上班的copy a lot ? 官网及申请地址:https://copilot.github ...

  9. 何同学新视频火了!找到减少沉迷手机的最佳方法:附免费APP

    以优质原创视频吸引百万粉丝的 Up 主"何同学"昨晚(1 月 6 日)上线了最新作品,探讨了如何有效地减少现代人使用或者说沉迷手机的时间. 在视频开头,何同学提到,整理了 5000 ...

  10. PicGo+GitHub:你的最佳免费图床选择!

    # PicGo介绍 这是一款图片上传的工具,目前支持SM.MS图床,微博图床,七牛图床,腾讯云COS,阿里云OSS,Imgur,又拍云,GitHub等图床,未来将支持更多图床. 所以解决问题的思路就是 ...

随机推荐

  1. 不能显式拦截ajax请求的302响应?

    记录工作中早该加深印象的一个小case: ajax请求不能显式拦截 302响应. 我们先来看一个常规的登录case: 浏览器请求资源,服务器发现该请求未携带相关凭据(cookie或者token) 服务 ...

  2. c语言代码练习3改进

    #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int x = 0; printf("请输入一 ...

  3. 如何编写难以维护的 React 代码?耦合通用组件与业务逻辑

    在众多项目中,React代码的维护经常变得棘手.其中一个常见问题是:将业务逻辑直接嵌入通用组件中,导致通用组件与业务逻辑紧密耦合,使其失去"通用性".这种做法使通用组件过于依赖具体 ...

  4. 彻底搞懂Docker容器与Kraft模式kafka集群关于消息大小相关参数设置

    Docker部署的设置 部署背景: 在DockerHub拉取的bitnami/kafka:3.4.1 镜像,如果要部署在Docker-Swarm集群或者单Docker部署,对于消息大小设置需要添加参数 ...

  5. 用Rust手把手编写一个Proxy(代理), 准备篇, 动手造轮子

    用Rust手把手编写一个Proxy(代理), 准备篇, 动手造轮子 wmproxy 将实现http/https代理, socks5代理, 后续将实现websocket代理, 内外网穿透等, 会将实现过 ...

  6. 源码搭建zabbix平台

    1.基于lnmp部署zabbix监控平台; zabbix优点: 1.支持自动发现服务器和网络设备: 2.分布式的监控体系和集中式的WEB管理: 3.支持主动监控和被动监控模式: 4.基于SNMP.IP ...

  7. xxl-job安装部署文档

    xxl-job安装部署文档 注意:替换yaml文件中的mysql地址 安装方式 kubectl apply -f xxl-job.yaml -n xxxx 安装配置文件 xxl-job.yaml ## ...

  8. AtCoder Beginner Contest 326 (ABC326)

    A. 2UP3DOWN 直接模拟即可. Code B. 326-like Numbers 枚举,每次拆除百.十.个位,再判断. Code C. Peak Description 数字线上放置了 \(N ...

  9. [Python急救站课程]计算1!+2!+3!+......+10!

    计算1!+2!+3!+......+10!程序 sum, tmp = 0, 1 for i in range(1, 11): tmp *= i sum += tmp print("运算结果是 ...

  10. KingabseES例程-事实数据与规则的匹配校验

    KingabseES例程-事实数据与规则的匹配校验 背景 使用规则,对数据进行校验,比如电商的用户购物订单,是否合法.这就需要订单的多维度,如 用户.地区.物流.支付手段.供应商 等各类信息,进行动态 ...