【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.rhkb.cn/news/268041.html

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

相关文章

最新发布!2D激光雷达与相机数据融合的新方法

作者:小柠檬 | 编辑:3DCV 在公众号「3DCV」后台,回复「原论文」获取论文 添加微信:dddvision,备注:3D高斯,拉你入群。文末附行业细分群 原文:最新发布!2D激光雷达与相…

【飞桨EasyDL】飞桨EasyDL发布的模型转换onnx(附工程代码)

一个愿意伫立在巨人肩膀上的农民...... 一、paddle转onnx转rknn环境搭建 paddle转onnx和onnx转rknn两个环境可以分开搭建,也可以搭建在一起。这里选择分开搭建,先搭建paddle转onnx。 1.1、创建环境 选择python3.8.13包进行创建环境 conda create --nam…

SQL 练习题目(入门级)

今天发现了一个练习SQL的网站--牛客网。里面题目挺多的,按照入门、简单、中等、困难进行了分类,可以直接在线输入SQL语句验证是否正确,并且提供了测试表的创建语句,也可以方便自己拓展练习,感觉还是很不错的一个网站&a…

项目实战:Qt监测操作系统物理网卡通断v1.1.0(支持windows、linux、国产麒麟系统)

若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136276999 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

Logic Pro:专业音乐制作软件,为你的音乐插上翅膀

Logic Pro是一款功能强大的音乐制作软件,专为专业音乐人和音乐爱好者设计。它提供了全面的音乐创作工具,包括音频录音、编辑、混音、合成以及自动化等功能,让你能够轻松实现音乐梦想。 Logic Pro软件获取 首先,Logic Pro拥有卓越…

使用 Azure 部署静态网页

Author:AXYZdong 硕士在读 工科男 有一点思考,有一点想法,有一点理性! 定个小小目标,努力成为习惯!在最美的年华遇见更好的自己! CSDNAXYZdong,CSDN首发,AXYZdong原创 唯…

【airtest】自动化入门教程(一)AirtestIDE

目录 一、下载与安装 1、下载 2、安装 3、打开软件 二、web自动化配置 1、配置chrome浏览器 2、窗口勾选selenium window 三、新建项目(web) 1、新建一个Airtest项目 2、初始化代码 3、打开一个网页 四、恢复默认布局 五、新建项目&#xf…

[业务系统]人物坐骑系统介绍I

1.问题描述 旧版本的坐骑系统依赖于人物装备了【法宝】(一种装备类型),装备了法宝的人物变拥有了【幻化】坐骑的能力,即在人物装备栏中的【外观】中会有已经幻化和未幻化(解锁)的坐骑。如果玩家至少幻化一…

基于R语言的分位数回归技术应用

回归是科研中最常见的统计学研究方法之一,在研究变量间关系方面有着极其广泛的应用。由于其基本假设的限制,包括线性回归及广义线性回归在内的各种常见的回归方法都有三个重大缺陷:(1)对于异常值非常敏感,极少量的异常值可能导致结…

(全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF

研究生英语读写教程基础级教师用书PDF 研究生英语读写教程提高级教师用书PDF pdf下载(完整版下载) (1)研究生英语读写教程基础级教师用书PDF (2)研究生英语读写教程基提高级教师用书PDF

【C++那些事儿】深入理解C++类与对象:从概念到实践(中)| 默认构造函数 | 拷贝构造函数 | 析构函数 | 运算符重载 | const成员函数

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C那些事儿 🌅 有航道的人,再渺小也不会迷途。 文章目录 1. 类的6个默认成员函数2. 构造函数2.1 概念2.2 特性 3. 析构函数3.1 概念3.2 特性 4. 拷贝…

GO-接口

1. 接口 在Go语言中接口(interface)是一种类型,一种抽象的类型。 interface是一组method的集合,接口做的事情就像是定义一个协议(规则),只要一台机器有洗衣服和甩干的功能,我就称它…

基于springboot+vue的工厂车间管理系统

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

初阶数据结构之---栈和队列(C语言)

引言 在顺序表和链表那篇博客中提到过,栈和队列也属于线性表 线性表: 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。线性表在逻辑上是线性结构,也就是说是连…

【操作系统(Operator System)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、概念 二、结构示意图 三、尝试理解操作系统 系统调用和库函数概念 承上启下 总结 前言 世上有两种耀眼的光芒,一种是正在升起的太阳&#xff…

【Go语言】Go语言中的字典

Go语言中的字典 字典就是存储键值对映射关系的集合,在Go语言中,需要在声明时指定键和值的类型,此外Go语言中的字典是个无序集合,底层不会按照元素添加顺序维护元素的存储顺序。 如下所示,Go语言中字典的简单示例&…

FRM模型十三:互换定价(二)

定义一个互换,本金为1e7,7年后到期 固定端:利率2.5%,每年付息一次 浮动端:Libor6M,每半年付息一次 import QuantLib as ql from prettytable import PrettyTable# 定义全局时间:当前日期,下一个结算日&…

【Mybatis】快速入门 基本使用 第一期

文章目录 Mybatis是什么?一、快速入门(基于Mybatis3方式)二、MyBatis基本使用2.1 向SQL语句传参2.1.1 mybatis日志输出配置2.1.2 #{}形式2.1.3 ${}形式 2.2 数据输入2.2.1 Mybatis总体机制概括2.2.2 概念说明2.2.3 单个简单类型参数2.2.4 实体…

计算机网络|Socket

文章目录 Socket并发socket Socket Socket是一种工作在TCP/IP协议栈上的API。 端口用于区分不同应用,IP地址用于区分不同主机。 以下是某一个服务器的socket代码。 其中with是python中的一个语法糖,代表当代码块离开with时,自动对s进行销毁…

将python程序打包为exe格式

1. 安装pyinstaller winr打开命令窗口 输入: pip install pyinstaller输入命令后会自动安装pyinstaller 2. 打包 进入你的代码所在位置,输入cmd 在弹出的窗口中输入 pyinstaller --onefile your_script.pyyour_script.py修改为你需要打包的程序名字 …