在如今这个人工智能高速发展的时代,每个行业都在被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. 如何通过拼多多订单API接口获取订单详情

    要获取拼多多订单详情,可以使用以下接口: 1. API名称:pdd.order.detail.get 接口说明:此接口用于查询某个订单的详情信息. API文档地址:前往注册 调用该接口需要提供以下参数 ...

  2. 浅入深出的微前端MicroApp

    前言: 本文是由最近做的一个项目有感而发,因为之前做了一些技术栈的统一,为了用ant Design的pro-table,PC统一使用react,但是我们有一些老的项目是vue的,本次新页面较多,老页面 ...

  3. redis基本数据类型 Hash

    Hash 类型 Hash类型的常见命令 HSET key field value: 添加或者修改hash类型key的field的值HGET key field: 获取一个hash类型key的field ...

  4. c语言代码练习2(2)

    //利用for循环,输出1-10阶乘的和#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main( ) { int i = ...

  5. LSP 链路状态协议

    转载请注明出处: 链路状态协议(Link State Protocol)是一种在计算机网络中用于动态计算路由的协议.它的主要作用是收集网络拓扑信息,为每个节点构建一个准确的网络图,并基于这些信息计算出 ...

  6. matlab关于阶梯图和图窗操作

    1阶梯信号绘制 Matlab 中绘制阶梯图函数:stairs x = [30 33 37 40 37 33 30 27 23 20 23 27 30 30]'; StepNum = length(x) ...

  7. 成本阶问题:财务模块axcr004合计金额检核表第18行合计金额与明细差异过大问题处理?

    财务模块axcr004合计金额检核表第18行合计金额与明细差异过大问题处理? 可能原因:生产开立工单时元件未建在生产料件BOM明细中,导致成本阶没有算到,需要手动更改成本阶. 公式: 处理办法:修改成 ...

  8. 再学Blazor——组件

    Blazor 应用基于组件,组件可以复用和嵌套.本文内容如下: 组件类 组件嵌套 组件参数 组件对象 1. 组件类 所有组件都是继承 ComponentBase 组件基类,razor 文件默认继承 C ...

  9. AI图形算法之一:液位计识别

    AI人工智能的主要应用之一就是图形化处理和识别,之前写了两篇,分别是: AI图形算法的应用之一:通过图片模板对比发现油田漏油 AI图形算法的应用之一:仪表识别 经过几个晚上的辛苦,液位计识别也测试成功 ...

  10. CSS之transition属性

    1.鼠标移动到div中背景颜色慢慢变化(1个属性的变化) <!DOCTYPE html> <html> <head> <title></title ...