通过一篇文章,详细跟大家分享一下我在使用通义灵码过程中的感受。
一、定义
通义灵码,是一个智能编码助手,它基于通义大模型,提供代码智能生成、研发智能问答能力。
在体验过程中有任何问题均可点击下面的连接前往了解和学习。
二、入门
当下市面上主流的智能编码助手有很多,下表是我工作中使用过的。
助手名称 | 是否免费 | 起步价格 | 简介 |
GitHub Copilot | 否,有免费计划 | 4美元/月 | 由 OpenAI Codex 语言模型驱动,迄今为止市场上最好的智能编码助手之一。 |
Amazon CodeWhisperer | 否,有免费计划 | 19美元/月 | 由机器学习提供支持的创新的代码生成器,经过大量开源代码数据集的训练,可以根据注释和现有代码提出从片段到完整功能的任何建议。 |
Tabnine | 否,有免费计划 | 15美元/月 | 基于海量开源代码数据集的智能代码补全,通过提供智能完成建议和识别潜在错误来帮助提高工作效率并提高代码质量。 |
Replit | 否,有免费计划 | 7美元/月 | 基于浏览器的 IDE 而闻名,该 IDE 允许在文档和本机托管中进行共同编码。 |
AskCodi | 否,有免费计划 | 7.99美元/月 | 由 OpenAI Codex 提供支持,可以生成代码、回答你的编程问题,甚至提供有用的代码建议。 |
Codiga | 否,有免费计划 | 14美元/月 | 基于 AI 的静态代码分析工具,可帮助开发人员编写更好、更快、更安全的代码。 |
Bugasura | 否,有免费计划 | 5美元/月 | 一款人工智能驱动的错误跟踪工具,旨在简化你的错误管理流程。 |
AI Helper Bot | 否,无免费计划 | 5美元/月 | 一款强大的、人工智能驱动的 SQL 查询生成器。 |
Android Studio Bot | 是 | 免费 | 是 Android Studio 中内置的AI驱动的编码助手。 |
TONGYI Lingma | 是 | 免费 | 基于通义大模型,提供代码智能生成、研发智能问答能力。 |
在开始入门操作前,需要准备好环境,也就是程序的安装。当前通义灵码兼容在两大主流编程工具Visual Studio Code、JetBrains IDEs下进行直接安装,后面新增了 Visual Studio 端。下面就分别介绍如何一步一步完成安装。
- Visual Studio Code
点击前往官方下载Visual Studio Code,如果你已经安装过该工具,此步可忽略。为了在使用中产生不必要的异常,这里直接下载官网最新稳定版。如图:
安装程序完成下载后,直接点击运行,安装完成后效果如图:
软件默认界面纯英文显示,如想更换成中文,官方提供了插件,只需点击应用——搜索chinese,选择安装即可。如图:
完成安装后,重启客户端。你就拥有了一个中文显示的界面了。如图:
安装通义灵码同样的需要点击应用,搜索通义灵码或者TONGYI Lingma。点击安装即可。如图:
安装完成后及时生效,无需重启。软件导航栏多出了一个通义灵码的图标。如图:
这里有一点非常好,就是如果你电脑上有其他的编码工具并且已登录过通义灵码对应的阿里云账号,此时完成安装通义灵码后也同时完成了登录,免去了再次登录的麻烦。
- JetBrains IDEs
点击前往官网下载IntelliJ IDEA,如果你已经安装过该工具,此步可忽略。为了在使用中产生不必要的异常,这里直接下载官网最新稳定版。如图:
完成下载后,直接点击运行安装,步骤很简单,一直点下一步即可,这里就不赘述。完成安装后的效果如图:
软件界面默认是全英文的,如果你想换成中文,只需要安装一个插件即可。软件左侧导航栏点击Plugins,搜索Chinese,选择语言包那个,点击install。如图:
完成安装后,点击界面上的 Restart IDE,重启客户端即可。这样一个中文菜单显示的界面就配置好了。如图:
回到正题,同样是插件市场,搜索通义灵码或者TONGYI Lingma,点击安装即可。如图:
完成安装后,同样需要重启客户端。上面演示的是在线安装,官方同时提供了ZIP离线安装包,工具上点击导航-插件,点击设置图标,下拉菜单中单击从本地安装插件,选择下载的 zip 文件后安装。
下图是安装完插件后,通义灵码显示的效果。
三、测评
1、功能使用维度
1)代码智能生成:行/函数级代码续写、行间描述生成代码、生成单元测试、生成代码注释、解释代码
- 解释代码
VS Code中在代码中点击快捷指令按钮便可实现解释代码功能,速度非常快,基本就是点击即生成,解释也准确。如图:
JetBrains中需要选定解释的代码而后右键,通过选择功能实现。如图:
从图上比较可以看出,稍微有点差异的地方是,VS Code首先给出的是精简的解释,而JetBrains给出的是详细的解释。
- 生成注释
在生成注释方面,两者基本一致,注释都准确。
- 生成单元测试
在生成单元测试中,两者也没有什么差异,都是准确的。但从显示效果来看,VS Code的代码更美观。
- 代码补全
在JetBrains中,可以通过快捷键Alt+P实现代码的补全,非常方便且准确。如图:
但有一说一,当下代码补全还不太智能,甚至有点臃肿。虽然补全的代码是对的,但会出现过多的日志。如图:
2)研发领域问答:调试和排查建议、研发领域智能问答
在回答同一个问题时,两者给出了完全不同的答案。VS Code的回答基本满足需求,即给出了实例也顺带简略了下步骤;JetBrains中的回答就有点完全照搬产品手册内容了,不甚了解产品的新人看到这里多少会有点蒙。如图:
3)灵码独有特异功能:对阿里云的资源 SDK/OpenAPI、对阿里云帮助文档有很好的支持
任选一个代码段,通过Ctrl+Shift+S进行搜索,可以很快速的找到50个代码实例以及参考文档,当然,这里选取的是阿里云的资源API,可以看到示例还是非常丰富的。从数据范围可以看出,这些示例均来自Github和StackOverflow,还是非常具有代表性的。如图:
参考文档方面数据量就显得很少了,虽然数据范围大了,但结果却很少。这里建议增加搜索引擎搜索,不仅限于阿里云论坛内部。如图:
2、产品设计维度
1)视觉体验:非常友好,整个界面清爽。
2)交互形式:交互方式很智能,比如检测到未登录,就会在右下角友情提示并提供了登录按钮。如图:
此外,当此时浏览器已登录了阿里云账号,点击登录时会自动关联,无需额外再次登录,很方便快捷。如图:
3)快捷键:产品首页对快捷键标识很清晰。智能问答 Ctrl+Shift+L、搜索Ctrl+Shift+S。有点差异的地方是,VS中搜索的快捷键被另存为占用,如需保持同JetBrains一致,需要自定义。
4)快捷入口:非常好地设计了快捷图标作为入口。图一是VS的,显示导航栏左侧;图二是JetBrains的,显示在右侧。
此外,VS Code中还内嵌了一个非常方便的快捷指令,通过点击可一键实现解释代码、生成单元测试、生成注释功能。如图:
3、交互体验维度
1)触发时机:整体的生成动作还是蛮自然的,能够根据用户的输入和上下文理解,自动生成相应的代码片段。
2)响应延时:基本没有延时,遇到回答问题时可能会有1-2s的思考时间。
3)按键数量:typing的次数将大大减少,尤其对于代码补全,通过一个快捷键即可完成很多次的typing。通过自动补全和代码片段生成,用户可以更快地完成输入,从而提高效率。
4)接受量:有多少内容(可以是字符数)被采纳
目前测试对于JAVA的内容采纳会多一些,对Python、C#等其他语言采纳会少,这个差异也许跟当下版本有关,后续优化肯定是可以解决的。
4、内容生成维度
1)生成的长度:生成的内容需要相对完整,并易于判断。
其实这个要根据不同的场景来综合评判,单一场景下的结论容易不准确。当前版本的通义灵码对于代码解释准确度可以到99%,内容长度略长,可以做精简;同时内容易读性很高。比如下图:
2)生成的正确性:是否有模型幻觉,出现答非所问
目前测试没有出现答非所问的情况,虽然偶尔一两次会出现回答不准确,但整体正确性还是蛮高的。比如下图:
3)生成的代码的优良率:生成的代码,需要符合几个特点:易读、可复用性、可扩展性、健壮性
简单用python实现了石头剪刀布的小游戏,运行没问题。如图:
但在实现画五星红旗的程序中,出现了未定义的方法。其实是多写了一个字母,应该是drawStar()。如图:
4)补全的“智能”程度:代码的智能程度、问题回答智能程度、生成出来的单元测试的有效性
这部分测试如果用数据来表示,那就是代码的智能程度为90%、问题回答智能程度88%、单元测试有效性92%。
四、总结
在体验通义灵码的过程中,我们发现它的续写代码功能非常强大。它能够根据当前的代码上下文,预测出可能的代码走向,给出合适的代码片段,极大地提高了编程效率。同时,它也能自动识别编程语言,并给出相应的代码解释,对于学习编程的新手来说非常有帮助。
除了续写代码功能,通义灵码的生成测试代码功能也十分出色。相较于人工编写测试用例需要数分钟甚至数十分钟的时间,通义灵码可以以毫秒级的速度生成测试代码,且准确率和覆盖率都令人满意。
在兼容性方面,通义灵码支持 JetBrains 全家桶和 Visual Studio Code 等多种开发工具,同时也支持 Java、Python、JavaScript、TypeScript、C/C++ 等30多种主流编程语言,可自动识别编程语言并生成代码解释。
在体验过程中,我们也发现通义灵码的一些潜在优点。例如,它可以打通阿里云开发工具和云资源的使用场景,提供代码智能化评审和软件构建问题智能排查能力。此外,基于持续迭代的通义大模型,通义灵码的未来版本还将不断提升开发者体验和研发效率。
但是,体验过程中还可以发现存在的一些不足之处,比如:
- 通义灵码可以生成测试代码,但其测试代码的覆盖率和准确率可能不如人工编写测试代码。这需要开发者具备一定的测试经验,才能正确地使用和指导通义灵码进行测试用例的生成。
- 在某些情况下可能会出现误判或理解错误的情况。例如,在处理复杂的代码逻辑或特殊的编程语法时,通义灵码可能会出现错误或无法完全理解上下文信息,从而导致生成的代码不准确或存在错误。
- 在不同编码工具上呈现出来的效果存在差异,明明是同一个问题或者需求,在不同的编码工具上可能出现完全不同的答案。
- 参考文档数据范围有限,为了更好地帮助开发者们解决实际问题,应增加搜索引擎根据关键字来进行搜索,提升文档数量的同时更好地满足解决问题需求。
总之,非常推荐大家体验一下通义灵码,随着使用时间的增加,通义灵码会越来越懂你,成为你的专属AI编码助手,很不错!
下载体验通义灵码:通义灵码_智能编码助手_AI编程-阿里云