赞
踩
作者:Lingxw_w
大家好,我是阿里云博客专家:Lingxw_w,最近,阿里云推出全新产品通义灵码,作为一个智能编码助手,可以根据你输入的上下文,生成行级/函数级代码、单元测试、代码注释等,下面我将基于Pycharm,在功能使用、产品设计、交互体验、内容生成、效率提升五个方面,从最简单的代码生成开始,全面的测评该软件。这样的工具对于开发者来说可能是非常有价值的,尤其是在处理大型项目或复杂代码时。通过结合自然语言处理和编码能力,通义灵码可以帮助开发者更快速地编写代码、生成文档和进行调试。
通义灵码是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/API 的使用场景调优,为开发者带来高效、流畅的编码体验。 兼容 Visual Studio Code、JetBrains IDEs 等主流 IDE;支持 Java、Python、Go、C/C++、JavaScript、TypeScript、PHP、Ruby、Rust、Scala 等主流编程语言。
行/函数级代码续写功能:
我们通过编写一个快速排序的代码:
按Tab键直接补全代码,按esc 废弃代码建议。使用alt+] 显示更多的代码方案:
点击右键可以进行生成单元测试、生成代码注释、解释代码。
在右边的模块显示代码:
除此之外,还支持两种通过自然语言描述生成代码的方式:
在编辑器中,直接通过注释的方式描述你需要的功能,直接在编辑器中生成代码建议,单击 Tab 可直接采纳 ;比如我现在要生成一个快速排序,只要提供一个注释即可:
在智能问答中,直接描述你需要的功能,智能问答助手将为你生成代码建议,并支持一键插入或复制代码。
这个功能就很强大了,大家在写代码的时候就不用切换Chatgpt,只要直接用通义灵码就可以了 ,非常方便。
假设我设定目前代码错误,
可以通过生成代码的单元测试来发现代码的错误:
- import unittest
-
- class DemoClass:
- def quick_sort(arr):
- if len(arr) <= 1:
- return arr
- else:
- pivot = arr[7]
- less = [x for x in arr[1:] if x <= pivot]
- greater = [x for x in arr[1:] if x > pivot]
- return quick_sort(less) + [pivot] + quick_sort(greater)
-
- class TestDemoClass(unittest.TestCase):
- def test_quick_sort(self):
- arr = [1, 3, 2, 5, 4, 6, 7, 8, 9, 10]
- expected_result = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- self.assertEqual(DemoClass().quick_sort(arr), expected_result)
-
- if __name__ == '__main__':
- unittest.main()
基于此,我们可以通过代码报错信息发给助手:
除此之外,还有异常报错智能排查(Java),当运行出现异常报错时,一键启动报错排查的智能答疑,可结合运行代码、异常堆栈等报错上下文,快速给出排查思路或修复建议代码。
首先是安装的便携性,我们在 JetBrains IDEs 中安装通义灵码:
搜索tongyi:
我基于pycharm来测评该插件:
1、自动化文档查询:我们可以直接向系统提出问题,系统能够基于训练得到的知识库,准确地回答关于编码、特定功能实现、API使用等方面的问题,节省了查找文档的时间。
2、解决开发过程中的BUG:在遇到问题时可以使用智能问答功能来获取技术支持。系统可以提供详细的解答,帮助解决开发中的问题。
3、学习和培训: 新手开发者可以通过向系统提问,获取有关编码实践、最佳实践和技术规范等方面的信息,从而加速学习和培训过程。
修改建议:
文档这里只有Mac的快捷键,一开始没找到window的,可以添加一下;
对于一个智能编码辅助工具,交互体验是至关重要的,因为它直接影响到开发者在日常工作中的使用效果和效率。
拥有智能纠错的功能,工具应该能够理解开发者可能的错误或模糊的提问,并进行智能纠正或提供建议,以提高用户体验。我们将代码放入问答入口:
总的来说:
代码能够自然地生成,但是生成的方案过少,从触发到内容的生成的响应延时也可以接受,typing的次数有所减少,非常适合程序员,替换chatgpt。
在代码的内容部分:
基于快速排序,可以发现生成的种类还是偏少:
只有这两种情况,感觉不够。
自然语言的方法也是两种:
跨文件上下文感知能力:我在产品文档中并没有找到可以【感知工程的上下文、给出的补全符合工程的业务上下文、修改了某部分代码而与之类似的代码会同样发生类似的生成变化】这些能力。
在效率提升部分,无疑是减少了打开Google或Baidu等搜索引擎的次数,如果可以添加更丰富的功能的话,可以替代Chatgpt。比如在写单元测试的时间确实很方便:
代码的安全性:在使用插件的时候,虽然代码被读取了,但是并不会发生代码泄露等现象,非常的安全,值得信赖。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。