【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.pswp.cn/news/716752.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716752.shtml
英文地址,請注明出處:http://en.pswp.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.…

uni-app app實現web-view H5圖片長按下載

問題和使用場景描述: uniapp app web-view中圖片無法長按保存,IOS下是正常的,但是Android下長按無反應 解決方案: 下載mui.min.js,放到項目中的static下(下載見最上面的壓縮包) 在static目錄下新建script.js mui.…

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 棧和隊列具有相同的邏輯…

Java的基本數據類型和引用數據類型

Java的基本數據類型和引用數據類型 Java中的基本數據類型包括整數類型、浮點類型、字符類型和布爾類型,而引用數據類型主要包括類、接口、數組和枚舉。具體介紹如下: 基本數據類型: 整數類型:包括byte、short、int、long&#…

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…

SQL中把datetime 轉為字符串

在 SQL 中,將 datetime 類型的數據轉換為字符串可以使用不同的方法,具體取決于你使用的數據庫系統。以下是一些常見數據庫系統中將 datetime 轉換為字符串的示例: 1. MySQL 在 MySQL 中,你可以使用 DATE_FORMAT() 函數將 dateti…