1、前言
大模型到底该以一种什么方式落地,从而嵌入我们的工作当中,助力我们工作效率的提升,其实最好的方式也许就是虚拟助手的方式,就像钢铁侠的"贾维斯"一样,随叫随到能回答问题,能自动的解决一些问题。
阿里开源出了自己的编程大模型“通义灵码”之后,我们可以通过IDEA插件的方式轻松打造一个自己的编程“贾维斯”。
2、下载安装
直接去插件市场里面搜索TONGYI Lingma就可以搜索出对应插件:
安装好之后需要我们用自己的阿里云账号来登录,点击登录会转跳登陆界面,用支付宝或者淘宝扫码即可:
3、解释代码
解释代码,这功能就太好用了。我说几种情况,大家要是中招的,可以把"真实"二字打在评论区里。
情况一:
祖传代码我相信大家目前所在的团队都会是有的,目前博主所在的团队手里就有大量的祖传代码,其中一个后端的controller类有接近一万行代码。这些沉重的“历史包袱”往往是阻碍我们开发的罪魁祸首。真不是写不出来,而是读不懂。
情况二:
作为后端的我们对前端代码其实没有那么熟悉,但有些时候我们是需要去碰一下前端代码做一些小修小改的。这种时候代码读起来真的是连蒙带猜。
情况三:
一些开源组件或框架的底层源码其实写的不一定就是很规范的,源码简直就是一片汪洋大海,很容易在里面迷路。
真实吧?ok,那找个帮手来帮我们一下就行了,交给通义灵码给我们翻译成人话就行了。
选中要翻译的代码,解释代码即可。
4、生成单元测试
但凡是对质量有一定要求的团队,在实际的生产中,单元测试是必然逃不过的一环,并且还会要求很高的覆盖率。关于单元测试博主前面有专门的文章讲解,有需要的话可以移步:
关于单元测试,是既重要又繁琐,它需要自己去手动写代码来构建测试用例,但既然是手动的活儿就有几率写的不好,覆盖不全面的情况发生。交给通义灵码,它可以自动帮我们生成单元测试。选中我们想要生成单元测试的方法:
来看一下它生成的单元测试对不对:
可以看到是很正确的,该用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 {
@Mock
private JdbcTemplate jdbcTemplate;
@InjectMocks
private UserService userService;
@BeforeEach
public void setUp() {
// 初始化测试环境
}
@Test
public 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键可以采纳智能补全。