前言
大家好,我是一名大数据开发工程师,在我实际工作当中每天与代码和数据为伍,享受着解决复杂问题的乐趣。今天,我想和大家聊聊我最近在编程之旅上遇到的一位超级“码”力助手——通义灵码。别小看这个名字,它可是我在VsCode里的新宠,帮我解决了不少头疼的问题,让我的工作效率和编程体验都上了一个新台阶。
之前也接触过一些编程辅助工具,但是感觉其实很多都挺鸡肋的,不过当我尝试了一段时间的通义灵码之后,给我的感觉完全不一样!它不仅仅是一个简单的代码补全工具,更像是一个拥有高度智慧的编程伙伴,能够理解我的编程意图,给出最合适的建议。
在编程的过程中,我们经常会遇到各种“卡壳”的情况,比如函数怎么用、API参数怎么配、代码性能怎么优化等等。这些问题如果靠自己解决,往往需要花费大量的时间和精力去查阅文档、搜索答案。但是,有了通义灵码之后,一切都变得简单多了。它就像是我的私人编程顾问,能够在我需要的时候,及时给出准确的答案和建议,让我的编程效率大大提升。
而且,通义灵码还有一个特别棒的优点,就是它能够根据我的编程习惯和项目需求,智能推荐代码片段和最佳实践。这对我来说,简直就是如虎添翼。有时候,我甚至在还没有完全明确自己的想法之前,通义灵码就已经给出了我需要的代码片段,让我可以迅速进入编程状态,不再为找不到合适的代码模板而烦恼。
所以今天也是想跟大家分享一下在VsCode中安装和使用通义灵码,以及它在我的实际编程工作中是如何发挥作用的。希望我的分享能够对你有所帮助,让我们一起在编程的道路上走得更远、更稳。
通义灵码介绍
兼容编程工具
JetBrains IDEs
- IDE 版本:IntelliJ IDEA、PyCharm、GoLand、WebStorm、Android Studio 等 2020.3 及以上
- 操作系统:Windows 7 及以上、macOS、Linux
- 暂不支持的系统架构:aarch64 windows
Visual Studio Code
- IDE 版本:1.68.0 及以上
- 操作系统:Windows 7 及以上、macOS、Linux
- 暂不支持的系统架构:aarch64 windows
Visual Studio
- IDE 版本:Visual Studio 2022 17.3.0 及以上,或 Visual Studio 2019 16.3.0 及以上
- 操作系统:Windows 10 及以上
其他场景
- Remote SSH、Docker、WSL 等远程连接开发场景
- VS Code 的 WebIDE,并支持 Open VSX 插件市场中下载和使用
- HUAWEI DevEco Studio,参考 JetBrains IDEs 安装手册-方法 2:下载安装包安装后使用
不同版本功能
版本 | 个人基础版 | 个人专业版 | 企业标准版 | 企业专属版 |
---|---|---|---|---|
包含功能 | 代码生成: 行/函数级代码实时续写 注释生成代码离线型单行补全跨文件感知能力多结果推荐智能问答:研发智能问答生成代码注释生成代码解释异常报错排查提交信息生成代码问题修复建议 | 代码生成:行/函数级代码实时续写注释生成代码离线模型单行补全跨文件感知能力多结果推荐智能问答:研发智能问生成代码注释生成代码解释异常报错排查提交信息生成代码问题修复建议生成单元测试代码优化本地工程问答 | 代码生成:行/函数级代码实时续写注释生成代码离线模型单行补全跨文件感知能力多结果推荐企业代码生成增强(Beta)智能问答:研发智能问答生成代码注释生成代码解释异常报错排查提交信息生成代码问题修复建议生成单元测试代码优化本地工程问答企业知识库问答企业管理:授权管理统计报表审计日志知识管理企业版专用推理服务限制:知识管理容量:500MB | 代码生成:行/函数级代码实时续写注释生成代码离线模型单行补全跨文件感知能力多结果推荐企业代码生成增强智能问答:研发智能问答生成代码注释生成代码解释异常报错排查提交信息生成代码问题修复建议生成单元测试代码优化本地工程问答企业知识库问答企业管理:授权管理统计报表审计日志知识管理多组织管理专属 VPC 部署IP 白名单管理专有网络访问企业版专用推理服务限制:知识管理容量:5GB |
安装
通义灵码是能够兼容 Visual Studio Code
、Visual Studio
、JetBrains IDEs
等主流编程工具的,但是本次我的主要编程工具是Visual Studio Code,所以根据Visual Studio Code的方式跟大家分享。
在Visual Studio Code中安装通义灵码是非常简单的,官方也是有详细的教程,不过我也还是简单的分享一下我的安装过程
官方教程:通义灵码安装教程
帮助文档:通义灵码帮助文档
官网:通义灵码官网
准备工作
因为使用的是Visual Studio Code来安装,所以要准备好Visual Studio Code 1.68.0 及以上版本。
- 操作系统:Windows 7 及以上、macOS、Linux;
- 下载并安装 Visual Studio Code 1.68.0 及以上版本。
第一种方案:从插件商店安装
搜索扩展
打开Visual Studio Code的扩展搜索TONGYI Lingma
点击信任&安装
点击登录
安装完成之后,在活动栏中就可以看到通义灵码的图标,然后点击图标之后进行登录,使用阿里云账号登录就可以
第二种方案:安装包安装
Visual Studio Code 的 VSIX 安装包
下载安装包之后在插件商店中点击右上角的更多,然后点击从CSIX安装就可以了,安装之后正常使用阿里云账号登录就可以
到这里就已经安装好了,就可以开启我们的智能编码之旅了!
简单使用
接下来我们来简单实用一下通义灵码,看看都能在我们编程过程中起到什么作用。
智能生成代码
- 采纳单元测试代码建议:支持一键插入、复制、或者新建代码文件,可快速采纳生成的单元测试代码建议;
- 更换单元测试框架:提供基于 JUnit、Mockito、Spring Test、unit test、pytest 等框架生成单元测试代码建议,在回答完成后,可以根据需要切换框架重新生成;
- 新建文件:支持一键保存单元测试代码为新文件,方便进行查看和修改。
给出我们的要求让通义灵码帮我们根据要求生成代码
要求如下:
使用Python生成一个图书管理系统
- 要求用户可以查看所有图书(包含图书的状态借出/空闲)
- 要求用户可以录入图书
- 要求用户可以借书
通义灵码给出的结果
class Book:
def __init__(self, title, author, status='空闲'):
self.title = title
self.author = author
self.status = status
def __str__(self):
return f"{self.title} by {self.author} - {self.status}"
class Library:
def __init__(self):
self.books = []
def add_book(self, title, author):
new_book = Book(title, author)
self.books.append(new_book)
print(f"图书 '{title}' 已添加到系统。")
def display_books(self):
if not self.books:
print("当前没有图书。")
return
for book in self.books:
print(book)
def borrow_book(self, title):
for book in self.books:
if book.title == title and book.status == '空闲':
book.status = '借出'
print(f"您已成功借阅 '{title}'。")
return
print(f"图书 '{title}' 不可借阅。")
def main():
library = Library()
while True:
print("\n欢迎来到图书管理系统")
print("1. 查看所有图书")
print("2. 录入图书")
print("3. 借书")
print("4. 退出")
choice = input("请选择操作: ")
if choice == '1':
library.display_books()
elif choice == '2':
title = input("请输入图书名称: ")
author = input("请输入作者名称: ")
library.add_book(title, author)
elif choice == '3':
title = input("请输入要借阅的图书名称: ")
library.borrow_book(title)
elif choice == '4':
print("感谢使用图书管理系统!再见!")
break
else:
print("无效的选择,请重新输入。")
if __name__ == "__main__":
main()
可以看到效果还是很不错的
代码解释
- 支持重试、更详细、更简单、中文/英文解释的追问。
有时候在编程过程中遇到一些不太理解的函数也可以直接询问通义灵码,让它帮我们做出解释,并解释这段代码的作用,可以对我们编程有很大的作用,节省了很多查资料的时间
进入刚才通义灵码写出来的代码,选中library = Library()
这段话,点击右键使用通义灵码进行代码解释
以下是通义灵码给出的解释:
代码解释
这段代码的功能是创建一个 Library 类的实例,并将其赋值给变量 library。假设 Library 类已经定义好,这个实例可以用来调用 Library 类中的各种方法和属性。
控制流图
由于这段代码非常简单,没有复杂的逻辑,因此控制流图也非常简单:
flowchart TD
A[创建 Library 实例] --> B[赋值给 library]
详细解释
- 创建 Library 实例:调用 Library 类的构造函数,创建一个新的 Library 对象。
- 赋值给 library:将新创建的 Library 对象赋值给变量 library,以便后续使用。
这里展示举了一个很简单的例子,通义灵码给出了很详细的解释,在实战中遇到比较陌生的函数或者对某一段代码不解的话都可以直接让通义灵码给出回答,非常高效!
生成注释
- 采纳代码注释建议:支持一键插入、复制,可快速采纳生成的代码注释建议;
- 查看 Diff:单击查看 Diff 按钮,将快速唤起 IDE Diff 查看窗口,快速了解建议和源代码的变更。
直接全部选中刚才的图书管理系统代码,让通义灵码帮我们对项目进行注释,这样可以易于阅读和理解。
通义灵码给出的结果
class Book:
"""
图书类,用于表示一本书的信息。
属性:
- title (str): 图书的标题。
- author (str): 图书的作者。
- status (str): 图书的状态,默认为'空闲'。
"""
def __init__(self, title, author, status='空闲'):
self.title = title
self.author = author
self.status = status
def __str__(self):
"""
返回图书的字符串表示,包含标题、作者和状态。
返回:
str: 图书的信息字符串。
"""
return f"{self.title} by {self.author} - {self.status}"
class Library:
"""
图书馆类,用于管理多本图书。
属性:
- books (list): 包含所有图书的列表。
"""
def __init__(self):
self.books = []
def add_book(self, title, author):
"""
向图书馆添加一本新书。
参数:
- title (str): 图书的标题。
- author (str): 图书的作者。
"""
new_book = Book(title, author)
self.books.append(new_book)
print(f"图书 '{title}' 已添加到系统。")
def display_books(self):
"""
显示图书馆中所有图书的信息。
如果没有图书,则显示提示信息。
"""
if not self.books:
print("当前没有图书。")
return
for book in self.books:
print(book)
def borrow_book(self, title):
"""
借阅一本图书。
参数:
- title (str): 要借阅的图书标题。
遍历图书列表,如果找到状态为'空闲'的图书,则将其状态更新为'借出'。
如果没有找到可借阅的图书,则显示提示信息。
"""
for book in self.books:
if book.title == title and book.status == '空闲':
book.status = '借出'
print(f"您已成功借阅 '{title}'。")
return
print(f"图书 '{title}' 不可借阅。")
def main():
"""
主函数,用于运行图书管理系统的命令行界面。
提供添加图书、显示所有图书、借阅图书和退出系统等功能。
"""
library = Library()
while True:
print("\n欢迎来到图书管理系统")
print("1. 查看所有图书")
print("2. 录入图书")
print("3. 借书")
print("4. 退出")
choice = input("请选择操作: ")
if choice == '1':
library.display_books()
elif choice == '2':
title = input("请输入图书名称: ")
author = input("请输入作者名称: ")
library.add_book(title, author)
elif choice == '3':
title = input("请输入要借阅的图书名称: ")
library.borrow_book(title)
elif choice == '4':
print("感谢使用图书管理系统!再见!")
break
else:
print("无效的选择,请重新输入。")
if __name__ == "__main__":
main()
可以看到,通义灵码直接把每行代码的详细含义都通过注释标注到代码上了,而且可以直接覆盖到原来的python文件上。
而且还可以通过diff按钮快速唤起 IDE Diff 查看窗口,快速了解建议和源代码的变更。
代码优化建议
- 采纳代码优化建议:针对优化建议中的建议代码,支持一键插入、复制,快速采纳生成的建议代码;
- 查看 Diff:单击查看 Diff 按钮,将快速唤起 IDE Diff 查看窗口,快速了解建议和源代码的变更;
选中代码,然后点击生成优化建议,哪怕你是小白,也可以写出非常优秀的代码
智能问答
@workspace 本地工程问答
当你需要快速了解一个工程、查找工程内的实现逻辑,或有新的诉求需要进行代码变更时,可以在智能问答窗口中通过 @ 可唤起 @workspace,选中后输入你的问题或诉求,通义灵码可快速结合当前仓库进行工程理解、代码查询、代码问答等,同时可以通过自然语言描述需求,结合当前工程生成简单需求或缺陷的整体修改建议和相关建议代码。
下面是我使用@workspace对自己本地的代码库进行的一个分析
可以让我们很快的就基本了解当前代码库的一个基本作用,在工作中具有重要意义
@terminal 问答
当你遇到执行指令不知道如何写,或者不清楚某个指令的意思时,可以在智能问答窗口中通过 @ 可唤起 @terminal,选择后使用自然语言描述你的需要指令诉求,通义灵码将可以生成你需要的命令。生成指令后,你可以一键插入到 terminal 中进行执行或让通义灵码继续解释。当然,你也可以在选择 @terminal 后,输入指令让通义灵码生成指令解释。
#teamDocs 知识库问答(企业版)
当你需要结合企业内私域知识信息让通义灵码进行回答时,可以在智能问答窗口中通过 # 唤起 #teamDocs,并输入问题,通义灵码将结合企业知识库(当前用户有权限的知识库)对问题进行回答,在回复中也可以单击查看引用的企业知识库内容。
总结
自己使用通义灵码也有一段时间了,对我自己而言感觉通义灵码已经是我编程过程中不可或缺的伙伴了,有了它自己的变成效率和质量大大提高,减少了很多去查资料的时间,而且还可以帮助自己去优化代码,所以非常推荐大家去使用一下,希望大家工作顺利!