【IDEA+通义灵码插件】实现属于你的大模型编程助手

目录

1.前言

2.下载安装

3.解释代码

4.生成单元测试

5.生成注释

6.智能补全


1.前言

大模型到底该以一种什么方式落地,从而嵌入我们的工作当中,助力我们工作效率的提升,其实最好的方式也许就是虚拟助手的方式,就像钢铁侠的"贾维斯"一样,随叫随到能回答问题,能自动的解决一些问题。

阿里开源出了自己的编程大模型“通义灵码”之后,我们可以通过IDEA插件的方式轻松打造一个自己的编程“贾维斯”。

2.下载安装

直接去插件市场里面搜索TONGYI Lingma就可以搜索出对应插件:

安装好之后需要我们用自己的阿里云账号来登录,点击登录会转跳登陆界面,用支付宝或者淘宝扫码即可:

登录完成后IDEA的面板会变成这样:

这样我们就有了自己的编程“贾维斯”。

它具体能做什么?已经写的很清楚了:

接下来我们就来感受一下这些功能。

3.解释代码

解释代码,这功能就太好用了。我说几种情况,大家要是中招的,可以把"真实"二字打在评论区里。

情况一:

祖传代码我相信大家目前所在的团队都会是有的,目前博主所在的团队手里就有大量的祖传代码,其中一个后端的controller类有接近一万行代码。这些沉重的“历史包袱”往往是阻碍我们开发的罪魁祸首。真不是写不出来,而是读不懂。

情况二:

作为后端的我们对前端代码其实没有那么熟悉,但有些时候我们是需要去碰一下前端代码做一些小修小改的。这种时候代码读起来真的是连蒙带猜。

情况三:

一些开源组件或框架的底层源码其实写的不一定就是很规范的,源码简直就是一片汪洋大海,很容易在里面迷路。

真实吧?ok,那找个帮手来帮我们一下就行了,交给通义灵码给我们翻译成人话就行了。

选中要翻译的代码,解释代码即可。

可以看到解释的非常准确:

当然你要是觉得它解释的不够清楚,还可以点击更详细,让它解释的更详细一点:

4.生成单元测试

但凡是对质量有一定要求的团队,在实际的生产中,单元测试是必然逃不过的一环,并且还会要求很高的覆盖率。关于单元测试博主前面有专门的文章讲解,有需要的话可以移步:

关于单元测试,是既重要又繁琐,它需要自己去手动写代码来构建测试用例,但既然是手动的活儿就有几率写的不好,覆盖不全面的情况发生。交给通义灵码,它可以自动帮我们生成单元测试。

选中我们想要生成单元测试的方法:

通义灵码会自动生成单元测试:

可以看到它生成的是junit的单元测试,同时它也提供了让我们选择其它诸如mockito之类的测试框架。

注意头上右上角的选项哈,它是可以自动帮我们生成类文件的:

来看一下它生成的单元测试对不对:

可以看到是很正确的,该用mock的方式注入JDBC,它是注入了的,改声明主启动类从而给出一个IOC环境,它也是正确声明了的。

package com.eryi.service;
​
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit.jupiter.SpringExtension;
​
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;
​
@ExtendWith(MockitoExtension.class)
@ExtendWith(SpringExtension.class)
public class UserServiceTest {
​@Mockprivate JdbcTemplate jdbcTemplate;
​@InjectMocksprivate UserService userService;
​@BeforeEachpublic void setUp() {// 初始化测试环境}
​@Testpublic void testTransfer() {// 设置预期行为when(jdbcTemplate.update(anyString(), anyVararg())).thenReturn(1);
​// 调用待测试的方法userService.transfer();
​// 验证方法调用verify(jdbcTemplate, times(1)).update("update user set balance = balance - ? where id = ?", 100, 1);verify(jdbcTemplate, times(1)).update("update user set balance = balance + ? where id = ?", 100, 2);
​// 验证事务是否回滚try {userService.transfer();fail("Expected an exception to be thrown");} catch (RuntimeException e) {// 异常应该被抛出}}
}

5.生成注释

6.智能补全

写代码写一半补全另一半已经很强了是吧?

通义灵码还能通过注释直接生成代码,写完注释后回车,然后会智能提示出可补全的内容,按tab键可以采纳智能补全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716752.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【OpenCV基础(三)】Ubuntu系统下EasyPR环境配置

环境配置 1、资源下载2、环境配置2.1、1、将EasyPR压缩包拷贝到Ubuntu 三种方法任选一种2.2、解压得到EasyPR文件夹(文件夹一层进入后EasyPR资源内容)2.3、终端命令修改权限**chmod -R 777 ./ EasyPR**2.4、查找EasyPR/include/easypr/config.h,使用gedit方式打开2.…

vue2本地开发环境正常,生产环境下this.$router.push({ name: ‘login‘ })不跳转

如果在Vue.js 2中在本地开发环境下正常运行,但在生产环境下使用​​this.$router.push({ name: login })​​不起作用,可能有几个原因需要检查和解决: 路由配置问题: 确保你的路由配置正确,特别是确保在生产环境中,路由的配置和本地开发环境一致。检查是否正确设置了name…

基于springboot+vue的智能学习平台系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

SAP PP学习笔记 - 豆知识07 - 如何查看BOM一览

SAP标准提供了CS03,只能查询单个的BOM,如果想查看一览,只能自己写SQVI 查询。 有其他高招的童鞋,请赐教啊。 1,SQVI 工具 SAP MM学习笔记18- SQVI 工具_sap sqvi-CSDN博客 输入查询名,然后点击 登录 2&a…

#QT(DEMO2-登录界面)

1.IDE:QTCreator 2.实验:DEMO登录 3.记录 Line Edit输入不换行 密码框输入如下设置: 运行效果 4.代码

Vue.js+SpringBoot开发在线课程教学系统

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…

五、西瓜书——集成学习

1.个体与集成 集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能,这对“弱学习器”(weak learner)尤为明显因此集成学习的很多理论研究都是针对弱学习器进行的而基学习器有时也被直接称为弱学习器。 要获得好的集成个体学习器应“好而不同”…

武汉灰京文化:多样化推广与创新引领游戏行业

作为专业的游戏推广服务商,武汉灰京文化注重多样化的推广策略,通过与各大媒体、社交平台和游戏社区建立紧密的合作关系,为游戏企业提供全方位的推广服务。他们通过精确的广告投放、内容创作和社交媒体互动等方式,将游戏信息传播给…

【C++】STL学习之旅——初识STL,认识string类

string类 1 STL 简介2 STL怎么学习3 STL缺陷4 string4.1 初识 string4.2 初步使用构造函数成员函数 5 小试牛刀Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见!!! 1 STL 简介 …

解读OWASP软件保障成熟度模型SAMM

OWASP软件保证成熟度模型(SAMM)可为所有类型的组织分析和改进其软件安全态势提供有效和可衡量的方法。OWASP SAMM支持完整的软件生命周期,包括开发和获取,并且与技术和过程无关。 1. 简介 OWASP软件保证成熟度模型(SA…

数据结构 第3章 栈、队列和数组(一轮习题总结)

第3章 栈、队列和数组 3.1 栈3.2 队列3.3 栈与队列的应用3.4 数组和特殊矩阵 3.1 栈(1 10 11 20) 3.2 队列(6 12 14 17) 3.3 栈与队列的应用(6 11) 3.4 数组和特殊矩阵 3.1 栈 T1 栈和队列具有相同的逻辑…

k8s-prometheus监控部署 22

新建项目仓库并上传部署prometheus所需的镜像 开始部署 修改svc访问方式为LoadBalancer 查看用户名和密码 访问grafana监控页面 http://192.168.182.103/​​​​​​ 修改可视化模板 官方监控模板:https://grafana.com/grafana/dashboards 访问prometheus监控页面…

1. vue3-环境准备

1、安装node.js 如果开发环境上面没有安装node.js,需要到node.js官方网站下载node.js。下载安装后,可以通过npm --version查看nodejs版本 2. 开发工具 开发工具建议使用vscode

知识图谱1——neo4j

2024年要搞知识图谱,因此没有办法,只能将我之前固守的JDK1.8,升级到JDK21,因为JDK21也是LTS版本,neo4j高版本就不支持JDK8,因此没有办法,只有升级了。写这篇只是一个搭建笔记,我的初…

AJAX 学习笔记(Day3)

「写在前面」 本文为黑马程序员 AJAX 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. AJAX 学习笔记(Day1) 目录 3 AJAX 原理 3.1 XMLHttpRequest 3…

springboot心灵治愈交流平台源码和论文

本论文主要论述了如何使用JAVA语言开发一个心灵治愈交流平台 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述心灵治愈交流平台的当前背景以及系统开发的目的&a…

@Transactional--开启事物后换源报错

一、问题出现的场景 系统架构设计、每个企业一个企业库、通过数据源切在平台库、和企业库之间动态切换完成业务操作。 二、跨库事物失效的原因 1、SpringTransactional不支持跨数据源事物,Spring 事物控制是基于数据库链接进行的,当数据源切换后&#x…

SketchUp Pro 2023:颠覆传统,重塑设计世界mac/win版

SketchUp Pro 2023是一款强大的三维建模软件,专为设计师、建筑师和创意专业人士打造。这款软件以其直观易用的界面和强大的功能而著称,为用户提供了无限的创意空间。 SketchUp Pro 2023软件获取 SketchUp Pro 2023在用户体验方面进行了全面的优化&#…

SpringBoot整合rabbitmq-重复消费问题

说明:重复消费的原因大致是生产者将信息A发送到队列中,消费者监听到消息A后开始处理业务,业务处理完成后,监听在告知rabbitmq消息A已经被消费完成途中中断,也就时说我已经处理完业务,而队列中还存在当前消息…

Qt|QTreewidget类下函数qt助手详解说明示例(上)

该系列持续更新,喜欢请一键三连,感谢各位大佬。 QT5.14.2 参考官方QT助手 文章目录 QTreeWidget ClasspropertiesPublic Functions默认构造函数默认析构函数添加根节点void addTopLevelItem(QTreeWidgetItem *item)添加多个根节点void addTopLevelItems…