腾讯云 AI代码助手 | 尽享 AI时代下的程序员福利

前言

AI时代下,可以说AI的飞速发展,影响着各行各业,同时也为各行各业带来了新的发展机遇。那么同样的,AI也为程序员带来了一大福利---腾讯云 AI 代码助手(以下统称为 AI代码助手 或 腾讯云 AI代码助手)。

腾讯云 AI 代码助手是由腾讯云自研的一款开发编程提效辅助工具,开发者可以通过插件的方式将 AI 代码助手安装到编辑器中辅助编程工作(VS Code 或者 JetBrians 系列 IDE);而 AI 代码助手插件将提供:自动补全代码、根据注释生成代码、代码解释、生成测试代码、转换代码语言、技术对话等能力。通过腾讯云 AI 代码助手,开发者可以更高效地解决实际编程问题,提高编程效率和代码质量。

PS:目前腾讯云AI代码助手还在【公测中】,免费哦,欢迎大家赶快来体验吧。腾讯云AI代码助手官网首页:https://cloud.tencent.com/product/acc

腾讯云AI代码助手

那么什么是腾讯云AI代码助手呢?简单的理解,他就是一款辅助编码工具。那么详细的理解,我们来看看他的核心功能吧!

智能补全代码信息(代码补全)

AI 代码助手可以对 IDE 中的业务代码进行全面解析,在随后代码编程中进行自动补全。基于上下文的代码质量越高、内容越丰富,补全的代码信息越准确。

精准修复错误代码(代码优化)

AI 代码助手可以根据使用者的需求和习惯,快速检查代码中的语法错误和逻辑错误,帮助开发者规范代码格式。

清晰解释既有代码(解释代码)

当开发者需要处理别人的代码,或者在既有代码中进行延展开发时,可以通过 AI 代码助手快速理解和解释初始代码,降低理解成本。

按需生成单元测试(生成单元测试)

AI 代码助手会根据函数、方法、内容逻辑生成相关的测试代码,并根据开发者的代码习惯,自动推荐单元测试的编写,提高单元测试的覆盖率。

人工智能技术对话(智能问答)

AI 代码助手将 chat 功能与 IDE 进行了集成打通;开发者可以随时随地,以各种方式向 AI 代码助手进行技术对话咨询,所获取的代码内容可以一键插入编辑器当中。

腾讯云AI代码助手官方文档地址:https://cloud.tencent.com/document/product/1749

AI代码助手插件安装

言归正传,说了这么多腾讯云AI代码助手的好,没有实践体验怎可服众。下面先安装插件,对于AI代码助手插件安装,需要注意 IDE 版本要求

我的版本是 Intellij IDEA 2023.1.2, 打开 Intellij IDEA ,在开发工具首页点击【File】-【Settings】

在弹出页面,选择【Plugins】,在插件市场输入【腾讯云】即可看到腾讯云AI代码助手插件

点击【Install】按钮安装插件,等待 腾讯云 AI代码助手 插件安装成功

如果你在你的 IDEA 插件市场没有搜索到 腾讯云 AI 代码助手 插件,那么你也可以通过先下载插件再安装的方式进行,下载地址:https://acc.cloud.tencent.com/v2/plugin/download?platform=jetbrains&version=latest 下载成功后,同样是进入到 【Settings】页面,点击【设置】选择 从磁盘安装插件

然后在打开的文件夹选择 下载好的 腾讯云 AI代码助手 安装包插件

等待插件安装成功后,重启IDEA 即可

IDEA 重启成功后,在右下角会有一个弹窗提示,需要登录腾讯云账号

点击【登录】跳转到浏览器腾讯云账号授权页面,点击【授权】完成账号授权

到这里,腾讯云 AI代码助手 插件安装操作结束。

AI代码助手上手实测

重启 IDEA 成功之后,可以在 IDEA 开发工具右侧侧边栏看到 【腾讯云 AI代码助手】的tab 以及一些基础模版

那么我就先来体验一下 AI代码助手 内置的示例模版的编码效果,点击【Java 冒泡排序】

腾讯云 AI代码助手生成代码内容

将生成的代码复制到本地demo 类中结果如下,

可以看到此时的 demo 类还没有 main 方法,无法直接运行冒泡排序方法,那么此时就用到了 AI代码助手的 代码补全功能 。

代码补全功能

在 demo 类中输入中文注释,点击回车可以看到 AI代码助手已经帮我们写好了 main 方法

代码语言:java
复制
//生成 main 方法执行 冒泡排序 算法

一键 Tab 确认,整段确认 AI代码助手帮助写的 main 方法,执行main 方法查看执行结果

整个冒泡算法代码生成到 main 方法代码补全到执行结果结束验证,分分种搞定,可以大大的提高开发人员的编码效率。

光标位置补全

当然,AI代码助手的代码补全功能不是任何情况下都是这样方法级别的大段的补全,还有基于光标位置的精准补全,就像这样,在我光标定位到 (参数) 时,AI代码助手根据 方法名 selectTmUpgradeSupplementRecordById 分析出此处需要补全 获取 getId() 操作,Tab 确认

大括号位置补全

或者是当你在 if 条件判断后 输入大括号 换行后 自动为你补全 你想要处理的 supplementUserIds 参数,你可以通过快捷键 【逐行采纳】 或者 【按词采纳】 或者 【全部采纳】

其实,对于代码补全功能来说,并不是补全的内容越多越好(可能补全的越多,错得越多,而且速度也会变慢,补全内容的长度与补全所需要的时间成正比),在不同代码位置,补全的内容的多少(粒度)是不一样的。正如我们上面看到的一样,AI代码助手会根据上下文代码对所在 光标位置 或者 大括号后内容进行整体的精准补全,从而提高我们编码的效率。

单行补全

在提交方法中,需要逐个字段的对需要更改的字段属性赋值,那么对于 submit2 方法,在补全了一个 applyTime 后,AI代码助手 自动补全出了 supplementTime 的赋值,这就是比较细粒度的精准的代码补全,省去了可能存在的需要删除大量无用补全代码的情况

业务代码块补全

在列表查询方法中,需要遍历 补全 升级商品名称,那么在遍历方法体内,输入如下注释

代码语言:java
复制
//查询 升级商品名称

AI代码助手会根据当前实现类内已有的 service实现类以及 方法调用自动补全此处可能需要的 升级商品名称 的补全,完全符合当前业务代码的需要,那么此时的方法体内 整块代码的补全 也是完全精确的代码补全。那么这样的 AI代码助手才正是开发者所需要的,所有给出的代码补全内容都是同样的恰如其分,不多不少。

如何提高代码补全准确性

对于AI代码助手来说,你的编码越规范,习惯越好,那么 AI代码助手就可以根据你现有的代码风格、变量和方法等命名规律、代码结构规律等进行模仿推测,从而推测出你可能想要的代码内容,提高代码编码效率。或者也可以根据代码注释内容来生成符合代码注释想要的 代码。在 编写 【2】处代码时,AI代码助手基于对【1】处代码逻辑的模仿学习,生成了 【2】处的代码,但是【2】处并不需要部门信息,因此就存在了多余的部分

总的来说,对于代码补全功能,想要让 AI代码助手生成你想要的代码,你就需要有一个好的习惯,统一的编码风格以及一个写 精准业务注释 的好习惯。

当然,如果你不想使用代码补全功能时,也可以禁用代码补全,操作如下

代码优化功能

对于程序员来说,自己的代码写完之后,往往会忽略一些细节,那么这个时候就可以使用 AI代码助手的代码优化功能来对已经写完的代码进行优化,比如这里我选中需要优化的代码范围,右键选择【腾讯云 AI代码助手】-【代码优化】

AI代码助手会基于现有代码进行代码分析并给出具体的优化后的代码,开发者可以根据优化的情况来决定是否采用 AI代码助手提供的优化后的代码

同样是这段代码,选中后右键选择【腾讯云 AI代码助手】-【定位代码缺陷】,通过检查代码缺陷来进一步优化代码

这次 AI代码助手基于框选的代码内容进行了 代码缺陷检查,并对可能存在的问题进行了详细分析,给出了优化后的代码内容,从而进一步使得开发者的代码健壮性以及规范性更好,这就是 AI代码助手的魅力所在。

解释代码

同为开发者的我们,想必维护别人的一堆一堆的代码,都经历过吧,可以说,维护别人的代码,特别是方法行数居多,嵌套贼多的代码,维护起来真的如同炼狱。这个时候你就可以使用 AI代码助手的 解释代码功能,选中需要解释的代码片段,右键 选择 【腾讯云 AI代码助手】-【解释代码】

此时 AI代码助手会根据代码的业务逻辑进行分块讲解内容,

并在最后对整个框选选中代码的业务内容进行一个总结,方便开发者从整体上把我整段代码业务逻辑,提高理解代码的效率,

人工智能技术对话

当然,AI代码助手除了可以帮助我们在编码过程中自动补全代码、解释代码、代码优化检查等功能,你还可以直接和 AI代码助手 进行对话,比如说现在马上到了 “金九银十” 求职季,那么是否可以让 AI代码助手来辅助我们面试呢?那么先问一个 AI代码助手最熟悉的问题试试手,比如我提问【什么是 AI代码助手】

回答的结果还算准确,pass。下面在来问几个 Java 面试常问的经典问题,看一下 AI代码助手的反应

Q:JRE、JDK、JVM的区别?

我详细的阅读了 AI代码助手关于这一问题的回复,从个人角度来看,这样的回答足够应对基础的面试内容了。既然 AI代码助手 这么有趣,那就再来问几个问题感受感受

Q:BIO、NIO、AIO 的区别?

对于这一问题的回复,从我个人角度来看是满意的,大家觉得呢?

那么这里就简单的问这几个常见的 Java面试题,当然大家也可以尝试其他语言的面试题来提问,我相信 AI代码助手的回复定不会让你失望。可以说,基于 AI代码助手,后续大家在面试找工作之前,是不是就可以有针对性的进行刷题了。不用再像过去一样,在各大网站一顿搜索,耗费时间不说,对于搜索到的结果还需要自己进行筛选,判断,很浪费时间。那么,在面试题的表现上,AI代码助手再一次验证了什么叫提效。

业务代码辅助生成

本文在介绍 AI代码助手的各大功能上,从个人作为程序员的角度,先介绍常用的功能,后介绍不常用的功能。业务代码辅助生成功能,不是说这个功能不常用,而是这个功能更像是一个汇总功能。比如我这里需要正则校验手机号,那么我可以告诉 AI代码助手,【帮我生成一段正则验证手机号的代码,并验证效果】

将 AI代码助手 生成的代码放在测试方法中测试效果,结果符合正常对于 手机号的正则校验效果

在操作了这么多次的 AI代码助手 之后,不知道大家是否注意到每次回答完问题之后,后面跟着的一句话,其实这就是 AI代码助手的小心思,相关问题推荐功能,默认会基于上面问题推荐一个相关问题来作为补充内容

还有就是 生成单元测试 的辅助功能,作为开发者,为了保障代码的健壮性,提高系统的稳定性,在编写完一段完整业务逻辑代码之后,往往都需要编写单元测试来验证。那么现在 AI代码助手 帮我们提供了一键生成单元测试功能,选中代码区域,右键选择【腾讯云 AI代码助手】-【生成单元测试】

AI 代码助手在基于选中代码分析后,自动生成单元测试类,那么我们只需要点击 AI代码助手 单元测试类代码右上角的操作按钮,即可以一键复制测试类,创建测试类用于代码测试

当然,除了鼠标操作 AI代码助手,AI代码助手 还贴心的准备了命令行方式,在 输入框中敲下 / 即可看到具体的命令,和鼠标操作选中效果一样的

最后,到这里,关于 腾讯云 AI代码助手的相关功能体验就告一段落,这里我体验的只是我日常工作中常用的功能,但是却不是 AI代码助手的全部功能,据说 AI代码助手有超过 100 种玩法哦。这里我啰嗦啰嗦的写了这么多,主要也就是一个抛砖引玉的作用,大家可以基于我文章中对于 AI代码助手的操作方法进行后续更多玩法的探索吧!

帮助与提升

说到 AI代码助手给予程序员,或者说给予开发者的帮助与提升,可以说正是文章标题中的 尽享AI时代下的程序员福利。在上面的 AI代码助手上手实测中,我测试的都是我日常工作常用到的场景,而这些场景下的 AI代码助手表现都足够让我满意。对于我来说,AI代码助手带给我的帮助与提升,可以说工作效率提高了,编码速度提高了,代码健壮性更好了,系统更稳定了。并且 AI代码助手的人工智能技术问答,还可以让我在工作之余可以很轻便的获取想要的知识或者是加深对知识点的理解。在不切换电脑界面,左边 日常代码开发, 右边 日常知识点学习 ,活到老学到老,甚是方便,哈哈

功能建议

对于 腾讯云 AI代码助手,经历了从 AI代码助手刚开始公测到现在的一段时间的使用感受,可以说整体上的功能还是足够满意的。在官方文档中看到 AI代码助手是支持 开发者编写方法说明,业务逻辑说明等方式来自动生成业务代码,但是考虑到实际开发过程中的业务代码逻辑可能不太好通过语言来说明白,因此担心 AI代码助手理解不了,在上面的上手实测时也就没有尝试。

希望后续 AI代码助手可以扩展一个这样的功能,比如说我指定一段代码入口,然后 AI代码助手从入口到最后数据展示,整体上来个学习优化建议,那么在后续变更业务逻辑时或者说添加业务逻辑时,AI代码助手是否可以理解的更准确,生成的代码可采纳性更高呢?

还有一点就是,目前 AI代码助手使用之前都是需要鼠标 框选代码片段,那么对于框选代码片段这个操作,大家是否感觉到,如果代码行数超过 一屏,需要滚动屏幕时,框选是否就变得费劲呢?希望后续可以直接在方法名或者方法前端提供一个 AI代码助手的入口,点击此 AI代码助手入口进行的关于 代码的操作默认就是当前方法全部内容的操作,这样就可以更大的提高开发者的工作效率了,

就像这样,在方法顶部留一个图标,点击图标选择 操作内容,或者选中方法名,点击右键 【腾讯云 AI代码助手】操作内容等,目前通过选中方法名进行 解释代码 或者其他操作的功能是没有的。这点我在建议平台也提过意见(https://cloud.tencent.com/voc/tasks/12717),目前处在排期待实现阶段。

结语

在文章的最后,对于本次全程体验 腾讯云 AI代码助手的具体自动补全代码、根据注释生成代码、代码解释、生成测试代码、转换代码语言、技术对话等能力,我是尽可能的体验了自己在日常工作中需要用到 AI代码助手的各种场景,说虽然整篇文章耗时数个小时,但是对于 AI代码助手 功能的深度挖掘还没有到位。希望大家可以在我这篇文章的基础上,继续深度体验 AI代码助手带来的福利,同时为更多的开发者提供更好的操作建议。

最后,感谢腾讯云 AI代码助手 开发团队,为程序员,为开发者,为技术人提供了一个享受AI时代福利的入口,同时也祝愿腾讯云 AI代码助手越来越好。