Node.js AI 通义灵码 VSCode 插件安装与功能详解
Node.js 作为基于 Chrome V8 引擎的 JavaScript 运行时,使 JavaScript 成为后端开发的重要选择。
在 Node.js 开发中,使用高效的工具可以显著提升开发效率和代码质量。
通义灵码作为一款智能编码助手,为 Node.js 开发者提供了强大的支持。
通义灵码简介
通义灵码是由阿里云技术团队开发的智能编码助手,基于先进的通义大模型,具备以下功能:
-
代码续写和优化:根据已有代码生成合理的后续代码,并提供优化建议。
-
自然语言描述生成代码:将自然语言描述转化为代码,帮助快速实现功能。
-
注释生成和代码解释:为代码添加详细注释,解释代码逻辑,便于理解和维护。
-
单元测试生成:自动生成测试用例,确保代码的可靠性和稳定性。
-
研发智能问答:解答编程过程中的疑问,提供专业的技术指导。
-
代码问题修复:帮助定位并修复代码中的错误,提高代码的正确性。
通义灵码官网:https://tongyi.aliyun.com/lingma/
通义灵码支持:JetBrains IDEs、Visual Studio Code、Visual Studio,及远程开发场景(Remote SSH、Docker、WSL、Web IDE),安装后登录账号即可开始使用。
环境准备
开发工具选择
JavaScript 开发者常用的编辑器是 Visual Studio Code(简称 VSCode),通义灵码对 VSCode 的插件支持在几种 IDE 中是最好的,因此本文以 VSCode 为例进行介绍。
插件安装
VSCode三端的插件安装方式基本一致,本文以Windows为例,介绍如何在VSCode中安装通义灵码插件。
确保已安装 VSCode 后(如未安装请查阅:Visual Studio Code 入门),在插件市场搜索“TONGYI Lingma”,找到通义灵码插件并安装。
安装完成后,VSCode 左侧会新增通义灵码图标,点击进入插件界面。
首次使用需点击“立即登录”,同意用户协议,会跳转到登录页面。
通义灵码支持多种登录方式,包括账号密码、手机号、支付宝、阿里云、淘宝、钉钉登录。
登录后即可使用通义灵码的各项功能。
功能演示
代码续写
通义灵码提供行级和函数级的代码补全功能。
在开启自动云端生成模式下,它会根据当前代码文件及相关文件的上下文,自动生成代码建议,可使用快捷键采纳、废弃或查看不同建议。
同时,编码过程中也可通过快捷键 alt+P
手动触发行间代码建议。
开发小提示:
为了提高代码补全的准确性,建议在编写代码前先写代码注释描述其功能。例如上图所示
通义灵码还提供了一组快捷键,方便更好地控制代码续写过程:
操作 | macOS | Windows |
---|---|---|
接受行间代码建议 | Tab | Tab |
废弃行间代码建议 | esc | esc |
查看上一个行间推荐结果 | ⌥(option) + [ | Alt+[ |
查看下一个行间推荐结果 | ⌥(option)+] | Alt+] |
手动触发行间代码建议 | ⌥(option)+P | Alt+P |
在一些文件中可能不需要代码续写功能,可以参考禁用行间生成,关闭对某类文件的代码续写功能。
智能问答
通义灵码的智能问答功能强大,不仅可以回答你的技术问题,还能进行代码创作。
例如,你可以向它咨询 Node.js 中某个模块的用法,或者请求它生成一个特定功能的代码片段。
基于智能问答,还能实现很多有用的功能,比如后续的代码注释、代码解释、单元测试生成和代码优化,都是基于智能问答实现的。
会话创建和清理
智能问答是一个持续对话的过程,为了提高 AI 生成答案的质量,应该适时清理会话。
你可以通过以下两种方式清理会话:
-
清理会话:在对话框中输入
/clearContext
,然后点击确定即可。 -
**创建新会话:**在智能问答的右上角有一个圆形
+
号按钮,点击即可创建新对话。
代码小技巧
通义灵码生成的代码一般都会在右上角有这四个小按钮,分别对应着插入、复制、新建和合并的功能,后续的功能会用到这些小技巧。
-
插入 :会把 AI 生成的代码替换到我们选中的代码位置,一般在代码注释和代码优化中应用。
-
复制 :则是复制 AI 生成的代码,我们可以自己选择插入的位置。
-
新建 :则是新建一个文件,把 AI 生成的代码放进去,一般而言生成测试代码会选择新建一个文件夹存放。
-
合并 :则是把代码黏贴到文件中,比如黏贴到选中的代码后,一般我们在智能问答中得到我们需要的代码可以用合并。
代码注释
通义灵码的代码注释功能可以帮助你快速为代码添加注释,提高代码的可读性和可维护性。
使用代码注释需要先选中需要注释的代码,右键选择通义灵码的生成注释功能,点击即可选择代码注释功能。
也可以用快捷键 Shift+Alt+V
使用代码注释功能。
注释结果会在左侧显示,你可以根据需要进行修改和完善。
代码解释
与代码注释不同,代码解释是告诉你代码为什么这么写。
选中代码后,点击通义灵码的代码解释按钮,通义灵码会根据你的代码生成对应的解释。这对于理解复杂代码逻辑、学习优秀代码示例非常有帮助。
单元测试生成
通义灵码可以根据你的代码设计对应的测试用例,并生成测试代码。
测试用例代码一般是复制后到一个专门的测试用例文件中,方便后续测试。
也可以用新建文件,通义灵码会再帮你创建一个测试用例文件。
代码优化
代码开发很难做到面面俱到,单人开发往往容易疏漏。
通义灵码提供了一种新的方向:使用 AI 进行代码审查和优化。
它不仅给出审查结果,提供优化思路,甚至还能给出优化后的代码。
代码优化一般使用合并(diff)操作来把原代码替换成优化后的代码。
AI 程序员
智能问答往往基于单个文件或者部分代码片段,而通义灵码提供了 AI 程序员的功能,它基于整个项目。
有些时候实现某个功能需要多个代码文件一起修改,AI 程序员就能轻松胜任!
可以看见 AI 帮你生成了一些代码,但最后你还得自行选择是否接受他生成的代码,最终决定权还在你自己。
总结与展望
通义灵码作为一款智能编码助手,为 Node.js 的开发提供了强大的支持。
从代码续写到智能问答,从代码注释到单元测试生成,再到代码优化和 AI 程序员功能,它几乎涵盖了开发过程中的各个方面。
通过本文的介绍,希望你能更好地理解和使用通义灵码,提升自己的编程效率和代码质量。
然而,AI 辅助编程工具的发展仍在不断进步中。
未来,随着技术的进一步成熟,通义灵码有望在更多场景下为开发者提供更智能、更精准的帮助。
对于广大开发者来说,掌握并善用这样的工具,无疑将在竞争激烈的编程领域中占据优势。
相关文章:
Node.js AI 通义灵码 VSCode 插件安装与功能详解
Node.js 作为基于 Chrome V8 引擎的 JavaScript 运行时,使 JavaScript 成为后端开发的重要选择。 在 Node.js 开发中,使用高效的工具可以显著提升开发效率和代码质量。 通义灵码作为一款智能编码助手,为 Node.js 开发者提供了强大的支持。 …...
Linux中的 I/O 复用机制 select
第一部分:select 基本概念 1.1. I/O 复用的提出:并发处理的挑战 在传统的网络服务模型中,服务器为每一个客户端连接创建一个独立的线程或者进程来处理。这种模式在并发连接数量较少时或许尚能应对,但当并发量显著增大时…...
再议AOI算法
AOI算法优化 首先,需要知道AOI(Area of Interest)是什么。AOI通常用于游戏或者分布式系统中,用来管理玩家或对象的视野范围,只关注感兴趣区域内的其他对象,减少不必要的通信和数据传输。 整理思路 如文章…...
Unreal5 从入门到精通之如何实现 离线语音识别
文章目录 前言将语言服务器作为外部进程运行UE 项目设置开始捕获语音同时运行服务器进程和游戏进程将 SoundWave 而不是麦克风作为输入将数据发送到语言服务器节点的工作原理详细文档前言 今天我们要说的是一个语音转文本(STT)的插件 Offline Speech Recognition, 它支持离线…...
form-create-designer中$inject参数的数据结构及各项属性说明
FcDesigner 是一款基于Vue的开源低代码可视化表单设计器工具,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。并广泛应用于在政务系统、OA系统、ERP系统、电商系统、流程管理等领域。 …...
WHAT - CSS 中的 min-height
文章目录 语法常见用途1. 防止元素被压缩得太小2. 配合 Flexbox 保证高度3. 用于内容区域动态撑高但不塌陷 与其他属性的区别提示 在 WHAT - CSS 中的 min-width 中我们已经详细介绍过 width。对于高度, CSS 同样提供一个 min-height. min-height 是 CSS 中用于设置…...
畅游Diffusion数字人(30):情绪化数字人视频生成
畅游Diffusion数字人(0):专栏文章导航 前言:仅从音频生成此类运动极具挑战性,因为它在音频和运动之间存在一对多的相关性。运动视频的情绪是多元化的选择,之前的工作很少考虑情绪化的数字人生成。今天解读一个最新的工作FLOAT&…...
PLC系统中开关量与模拟量信号解析
引言 在现代工业自动化进程中,可编程逻辑控制器(PLC)凭借其强大的功能与灵活性,成为工业控制系统的核心设备。PLC能够高效、精准地控制工业生产流程,很大程度上依赖于其对开关量和模拟量信号的处理能力。深入理解这两…...
Qt中解决Tcp粘包问题
Qt中解决Tcp粘包问题 Qt中解决Tcp粘包问题——以文件发送为例服务器端客户端效果演示注意点 Qt中解决Tcp粘包问题——以文件发送为例 创建的工程如下图所示: 服务器端 界面的布局以及名称如下图所示: 并且在Qt中增加网络模块 QT core gui n…...
Qt调用librdkafka
Qt调用librdkafka Windows系统编译Qt使用的kafka(librdkafka) VS2017编译librdkafka 2.1.0 经过上面的步骤我已经编译好了librdkafka库,我编译的主要十release版的,需要debug版的小伙伴编译的时候要留意一下。 接下来就是调用我们编译的kafka库了。 一、环境介绍 Qt:…...
深入解析Node.js文件系统(fs模块):从基础到进阶实践
文章目录 引言一、核心能力解析1.文件读写操作2.文件复制方案对比3.文件监控机制 二、扩展知识体系1.高级文件操作2.性能优化策略3.安全实践指南 三、最佳实践总结 引言 在 Node.js 生态系统中,fs 模块是与文件系统交互的核心工具。本文将通过代码示例和实践经验&a…...
9、AI测试辅助-代码Bug分析提示词优化
AI测试辅助-优化代码Bug分析提示词 Bug分析1、优化代码2、根据报错结果定位 Bug分析 利用AI优化代码Bug,有两种方式,一种是优化潜在的问题,一种是根据执行后的报错进行查找定位优化。其中如何用好提示词是关键 1、优化代码 常见需要优化的…...
AI无法解决的Bug系列(一)跨时区日期过滤问题
跨时区开发中,React Native如何处理新西兰的日期过滤问题 有些Bug,不是你写错代码,而是现实太魔幻。 比如我最近给新西兰客户开发一个React Native应用,功能非常朴素:用户选一个日期范围,系统返回该范围内…...
leetcode 153. Find Minimum in Rotated Sorted Array
题目描述 分析 可以发现一个规律: 假如整个数组最后一个元素是x。 最小值左侧(不含最小值自己)的元素全部大于x。 最小值右侧(包含最小值自己,不包含x)的元素全部小于x。 如果整个数组是有序的&#x…...
Brave 连接 Websocket 失败
前提: websocket 的服务启动正常连接的url是: ws://localhost: 15000/[子url] 在 Brave 浏览器的 console 中看到错误: WebSocket connection to ws://localhost:15000/ws failed:解决方法(Brave 浏览器专用) 方法 1:关闭 Brave 的 Shiel…...
【设计模式】基于 Java 语言实现工厂模式
目录 一、简单工厂模式 1.1 简单工厂模式的介绍 二、工厂方法模式 2.1 工厂方法模式的介绍 2.2 工厂方法模式的基本实现 2.3 工厂方法模式的应用场景 三、抽象工厂 3.1 抽象工厂的概念 3.2 抽象工厂的基本结构 3.3 抽象工厂的基本实现 3.4 抽象工厂的应用场景 四、…...
94.LabelGrid 的遍历与属性编辑 Maui例子 C#例子
for (int i 0; i < LabelGrid.Children.Count; i) {if (LabelGrid.Children[i] is Label label){await MainThread.InvokeOnMainThreadAsync(() >{label.TextColor Colors.Gray;});} } await Task.Delay(1000); // 延迟1秒 if (currentValue 0) {currentValue 16; } …...
Https流式输出一次输出一大段,一卡一卡的-解决方案
【背景】 最近遇到一个奇怪的现象,前端vue,后端python,服务部署在服务器上面后,本来一切正常,但公司说要使用https访问,想着也没什么问题,切过去发现在没有更改任何代码的情况下,ht…...
【C# 自动化测试】Selenium显式等待机制详解
Selenium显式等待机制详解 一、显式等待的概念 在自动化测试中,等待机制是处理页面元素加载延迟的重要手段。显式等待允许我们在继续执行代码之前等待某个条件发生,这比固定的强制等待更灵活高效。 二、显式等待的实现代码 1. 核心等待方法 /// <…...
【Redis】哈希表结构
目录 1、背景2、哈希表【1】底层结构【2】哈希冲突【3】链地址法【4】传统rehash【5】渐进式rehash【6】rehash触发条件【7】特性 1、背景 redis中的hashtable(哈希表)是一种高效的键值对存储结构,主要用于实现redis的字典类型,接…...
Redisson中为什么用lua脚本不用事务
一文详解事务和lua脚本的区别 核心问题: 为什么 Redisson 在实现分布式锁、信号量等复杂对象时,倾向于使用 Lua 脚本,而不是 Redis 内建的事务 (MULTI/EXEC)? 结论概览: Lua 脚本为 Redisson 提供了更强的原子性保证、…...
成功解决!!!Ubuntu系统安装包时出现:dpkg: 处理归档XXX时出错
在Ubuntu系统中在安装新的包时,有时会报错连环依赖问题,常见的报错为:下列软件包有未满足的依赖关系:XXX依赖XXX 但是它不会被安装 E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以…...
MySql数据库连接池
C数据库连接池 前言1.MySql API 函数讲解1.1 连接数据库的步骤1.2 MySQL C API1.2.1 初始化连接环境1.2.2 连接mysql服务器1.2.3 执行sql语句1.2.4 获取结果集1.2.5 得到结果集的列数1.2.6 获取表头 -> 列名(字段名)1.2.7 得到结果集中各个字段的长度(字节为单位)1.2.8 遍历…...
C++之fmt库介绍和使用(2)
C之fmt库介绍与使用(2) Author: Once Day Date: 2025年5月19日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 源码分析_Once-Day的博客-CSDN博客 …...
Python的collections模块:数据结构的百宝箱
Python的collections模块:数据结构的百宝箱 对话实录 小白:处理数据时,Python自带的数据结构不够用,有更强大的工具吗? 专家:那可不能错过collections模块,它提供了许多高效实用的数据结构&am…...
吃透 Golang 基础:数据结构之数组
文章目录 吃透 Golang 基础:数据结构之数组概述初始化访问和赋值小结参考资料 吃透 Golang 基础:数据结构之数组 对于 Golang 当中的顺序数据结构,使用频率最高的当然是切片,因为切片非常的灵活。与之相对比,数组常常会…...
第三个小程序动工:一款结合ai的菜谱小程序
1.环境搭建,与初步运行 安装及使用 | Taro 文档 找到一个合适的文件夹,cmd D:\gitee>pnpm install -g tarojs/cli╭──────────────────────────────────────────╮│ …...
小程序涉及提供提供文本深度合成技术,请补充选择:深度合成-AI问答类目
一、问题描述 最近新项目AI咨询小程序审核上线,按照之前小程序的流程,之前审核,提示审核不通过,审核不通过的原因:小程序涉及提供提供文本深度合成技术 (如: AI问答) 等相关服务,请补充选择:深…...
数据结构测试模拟题(1)
1、约瑟夫问题 #include<bits/stdc.h> using namespace std; const int N25; int e[N],ne[N],head-1,idx1; int n,m; void add_to_head(int x){e[idx]x;ne[idx]head;headidx; } void add(int k,int x){e[idx]x;ne[idx]ne[k];ne[k]idx; } int main(){cin>>n>>…...
Elasticsearch高级面试题汇总及答案
Elasticsearch高级面试题汇总及答案 这套Elasticsearch面试题汇总大全,希望对大家有帮助哈~ 1、什么是Elasticsearch Analyzer? 分析器用于文本分析,它可以是内置分析器也可以是自定义分析器。 2、Elasticsearch 支持哪些配置管理工具? 1、 Ansible 2、 Chef 3、 Pu…...
界面控件DevExpress WinForms v24.2——PDF Viewer功能升级
DevExpress WinForms拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜…...
Apache Apisix配置ip-restriction插件以限制IP地址访问
介绍 ip-restriction 插件可以通过将 IP 地址列入白名单或黑名单来限制对服务或路由的访问。 支持对单个 IP 地址、多个 IP 地址和类似 10.10.10.0/24 的 CIDR(无类别域间路由)范围的限制。 属性 参数名类型必选项默认值有效值描述whitelistarray[st…...
Maven 项目打包时添加本地 Jar 包
在 Maven 项目开发中,我们经常会遇到需要引入本地 Jar 包的场景,比如使用未发布到中央仓库的第三方库、公司内部自定义工具包,或者处理版本冲突的依赖项。本文将详细介绍如何通过 Maven 命令将本地 Jar 包安装到本地仓库,并在项目…...
JavaScript 性能优化:调优策略与工具使用
引言 在当今的 Web 开发领域,性能优化已不再是锦上添花,而是产品成功的关键因素。据 Google 研究表明,页面加载时间每增加 3 秒,跳出率将提高 32%。而移动端用户如果页面加载超过 3 秒,有 53% 的用户会放弃访问。性能…...
48、c# 中 IList 接⼝与List的区别是什么?
在 C# 中,IList 接口和 List 类在集合操作中扮演不同角色,主要区别体现在定义、功能、灵活性、性能及适用场景等方面。以下是详细对比: 1. 定义与本质 IList 接口 抽象契约:仅定义集合的基本操作(如索引访问、添加、…...
在 Azure OpenAI 上使用 Elastic 优化支出和内容审核
作者:来自 Elastic Muthukumar Paramasivam,Bahubali Shetti 及 Daniela Tzvetkova 我们为 Azure OpenAI 正式发布包添加了更多功能,现在提供内容过滤监控和计费见解的增强! 在之前的博客中,我们展示了如何使用 Elasti…...
Redis学习专题(三)主从复制
目录 引言: 1、搭建一主多从 1) 创建/hspredis目录, 并拷贝redis.conf 到 /hspredis 2) vi /hspredis/redis.conf , 进行如下设置 3) 创建3个文件/hspredis/redis6379.conf 、/hspredis/redis6380.conf 、/hspredis/redis6381.conf 并编辑 4) 启动三台redis服…...
设计模式之备忘录模式
在日常开发中,我们经常会遇到这样的场景:需要保存对象的某个历史状态,以便将来恢复。这种需求最常见的例子就是“撤销操作”。在这种情况下,备忘录模式(Memento Pattern)就派上了用场。 目录 1. 概念 2. 代码实现 3. 总结 1. …...
深度学习-runner.run(data_loaders, cfg.workflow)内部执行过程
文件:~/catkin_ws/SparseDrive/projects/mmdet3d_plugin/apis/mmdet_train.py 完成数据加载器、优化器、运行器实例化后, RUNNERS.register_module() class IterBasedRunner(BaseRunner):"""Iteration-based Runner.This runner train m…...
嵌入式开发学习日志(linux系统编程--文件读写函数)Day24
一、系统编程 标准oi 【输入输出】 stdio.h 头文件 :stdio.h >标准输入输出头文件;/usr/include/stdio.h 二、文件操作 1、关于文件操作的步骤 (1)打开文件; (2)io操作,读写…...
DEBUG:Lombok 失效
DEBUG:Lombok 失效 问题描述 基于 Spring Boot 的项目中,编译时显示找不到 log 属性。查看对应的 class 类,Lombok 正常在编译时生成 log 属性。 同时存在另一个问题,使用Getter注解,但实际使用中该注解并没有生效&…...
Qt 控件发展历程 + 目标(1)
文章目录 声明简述控件的发展历程学习目标QWidget属性 简介:这篇文章只是一个引子,介绍一点与控件相关的但不重要的内容(浏览浏览即可),这一章节最为重要的还是要把之后常用且重要的控件属性和作用给学透,学…...
按键精灵ios/安卓辅助工具高级函数OcrEx文字识别(增强版)脚本开发介绍
函数名称 OcrEx文字识别(增强版) 函数功能 返回指定区域内所有识别到的字符串、左上角坐标、区域宽高、可信度,无需自制字库,识别范围越小,效率越高,结果越准确 注意:安卓版按键APP需在设置…...
零基础入门Selenium自动化测试:自动登录edu邮箱
🌟 Selenium简单概述一下 Selenium 是一个开源的自动化测试工具,主要用于 Web 应用程序的功能测试。它能够模拟用户操作浏览器的行为(如点击按钮、填写表单、导航页面等),应用于前端开发、测试和运维领域。 特点 跨…...
MySQL高频面试八连问(附场景化解析)
文章目录 "为什么订单查询突然变慢了?"——从这个问题开始说起一、索引的生死时速(必考题!)二、事务的"套娃"艺术三、锁机制的相爱相杀四、存储引擎的抉择五、慢查询的破案技巧六、分页的深度优化七、高可用架…...
JVM 性能问题排查实战10连击
🗂️ 目录 前言:理论掌握只是起点,定位能力才是核心全局排查模型:三步法1️⃣Full GC 频繁触发:老年代压力过大2️⃣ OOM 爆炸:元空间泄漏 or 缓存未清理3️⃣ CPU 飙升却不是 GC:线程阻塞或热方…...
零基础深入解析 ngx_http_session_log_module
一、引言 在传统的 HTTP 日志中,每个请求都会被单独记录,这对于短连接、异步加载等场景非常直观;但在一些需要以“会话”为单位分析用户行为的场景下,如视频点播、多资源并行加载、长轮询等,单个请求日志难以准确反映…...
10.17 LangChain v0.3核心机制解析:从工具调用到生产级优化的实战全指南
LangChain v0.3 技术生态与未来发展 关键词:LangChain 工具调用, 聊天模型集成, @tool 装饰器, ToolMessage 管理, 多模态交互 使用聊天模型实现工具调用 LangChain v0.3 通过 工具调用(Tool Calling) 机制,将大模型与外部工具深度结合,形成闭环能力链。本节以 GPT-4、L…...
Android Framework学习七:Handler、Looper、Message
文章目录 简介LooperMessageMessageQueueHandlerFramework学习系列文章 简介 Looper当做一台传送装置,MessageQueue是传送带,传送带上放的是Message,Handler用于发送Message分发与接收处理。 Looper frameworks/base/core/java/android/app…...
分钟级降水预报API:精准预测每一滴雨的智慧科技
引言:天气预报进入"分钟时代" 在数字化生活高度发达的今天,人们对天气预报的精确度要求越来越高。传统的24小时预报或小时级预报已无法满足出行、物流、户外活动等场景的精细化需求。分钟级降水预报API的出现,标志着气象服务正式进…...