各位看官老爺好,如果還沒有安裝DeepSeek請查閱前一篇
一、IDE集成DeepSeek保姆級教學(安裝篇)
一、DeepSeek在CodeGPT中使用教學
1.1、Edit Code 編輯代碼
選中代碼片段 —> 右鍵 —> CodeGPT —> Edit Code, 輸入自然語言可編輯代碼,點擊Submit提交
基本是按自然語言生成的,補全后的代碼如下
public User findByName(String name) {if (StringUtils.isEmpty(name)) {return null;}User condition = new User();condition.setName(name);return userMapper.selectOne(condition);}
1.2、Find Bugs 查找bug
選中代碼片段 —> 右鍵 —> CodeGPT —> Find Bugs 即可對代碼進行潛在 Bug 分析
分析得合理且詳細有木有,并且會給出優化建議,優化后瞬間修復了bug,還提升了性能,下面附上完整的優化代碼:
public String getGender(String identityCard) {if (identityCard == null) {throw new IllegalArgumentException("身份證號碼不能為空");}if (identityCard.length() != 18) {throw new IllegalArgumentException("身份證號碼長度必須為18位");}char genderChar = identityCard.charAt(16); // 直接獲取第17位字符if (!Character.isDigit(genderChar)) {throw new IllegalArgumentException("身份證號碼第17位必須是數字");}return (genderChar - '0') % 2 == 1 ? "男" : "女"; // 字符轉數字并判斷奇偶性
}
1.3、Explain 解釋代碼
選中代碼片段 —> 右鍵 —> CodeGPT —> Explain,代碼解釋可以幫助程序員快速理解業務邏輯
1.4、Refactor 代碼重構
選中代碼片段 —> 右鍵 —> CodeGPT —> Refactor,感覺不合理的代碼都可以借助AI進行代碼重構
重構后的代碼如下,使用 try-with-resources 簡化資源管理避免內存泄露,抽取 createReadSheet 方法減少重復代碼
// 使用 try-with-resources 簡化資源管理
String fileName = "F:\\demo.xlsx";
try (ExcelReader excelReader = EasyExcel.read(fileName).build()) {// 創建并配置兩個工作表ReadSheet readSheet1 = createReadSheet(0, new DemoDataListener());ReadSheet readSheet2 = createReadSheet(1, new DemoDataListener());// 同時讀取兩個工作表excelReader.read(readSheet1, readSheet2);
} catch (Exception e) {log.error("讀取 Excel 文件失敗", e);return failed("讀取失敗");
}
return success();// 輔助方法:創建并配置 ReadSheet
private ReadSheet createReadSheet(int sheetNo, DemoDataListener listener) {return EasyExcel.readSheet(sheetNo).head(DemoData.class).registerReadListener(listener).build();
}
1.5、Optimize 優化代碼
選中代碼片段 —> 右鍵 —> CodeGPT —> Optimize,優化代碼功能可以幫助程序員極大提高代碼質量
優化后的完整代碼如下:
@Override
public String getGender(String identityCard) {// 檢查身份證號是否為空或長度不為18if (identityCard == null || identityCard.length() != 18) {throw new IllegalArgumentException("無效的身份證號碼:身份證號不能為空且長度必須為18位");}// 檢查身份證號格式(前17位為數字,最后一位為數字或X)if (!identityCard.matches("\\d{17}[\\dX]")) {throw new IllegalArgumentException("無效的身份證號碼:格式不正確");}// 直接獲取第17位字符char genderChar = identityCard.charAt(16);// 判斷性別:奇數男,偶數女return (genderChar - '0') % 2 == 1 ? "男" : "女";
}
優化后的優勢
- 格式校驗更嚴格:確保身份證號符合標準格式(前 17 位為數字,最后一位為數字或 X)。
- 健壯性增強:避免非法輸入導致邏輯錯誤或異常。
- 可讀性提高:通過正則表達式明確校驗規則,代碼更清晰。
優化總結:增加身份證格式校驗后,代碼更加健壯,能夠有效過濾非法輸入,同時保持了原有功能的簡潔和高效。
1.6、Write Tests 編寫單元測試
選中代碼片段 —> 右鍵 —> CodeGPT —> Write Tests, 不愛寫單元測試的程序員有福音了,通過deepseek直接生成,做輕微調整就能用,極大減少了編寫單元測試的時間
完整的單元測試代碼如下:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;class GenderUtilTest {@Testvoid testGetGender_Male() {String identityCard = "110105199003071234"; // 第17位為奇數assertEquals("男", GenderUtil.getGender(identityCard));}@Testvoid testGetGender_Female() {String identityCard = "110105199003071238"; // 第17位為偶數assertEquals("女", GenderUtil.getGender(identityCard));}@Testvoid testGetGender_NullInput() {String identityCard = null;IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> {GenderUtil.getGender(identityCard);});assertEquals("無效的身份證號碼", exception.getMessage());}@Testvoid testGetGender_InvalidLength() {String identityCard = "11010519900307123"; // 長度不足18位IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> {GenderUtil.getGender(identityCard);});assertEquals("無效的身份證號碼", exception.getMessage());}@Testvoid testGetGender_InvalidCharacter() {String identityCard = "11010519900307123X"; // 第17位為非數字字符assertThrows(NumberFormatException.class, () -> {GenderUtil.getGender(identityCard);});}
}
業務方法的調整需要調整下,第17位為偶數,第17位其實是3,不是偶數所以也需要調整下,其他的就沒啥問題了。
1.7、Chat 聊天
單擊右側CodeGPT圖標 —> 在對話框輸入你想要實現的內容(自然語言) —> 單擊發送圖標即可生成代碼,可以這么說會自然就能寫代碼的時代即將到來,AI 應用會越來越強大。
完整代碼如下:
public class DigitFilter {// Method to filter digits from a stringpublic static String filterDigits(String input) {StringBuilder digits = new StringBuilder();for (char c : input.toCharArray()) {if (Character.isDigit(c)) {digits.append(c);}}return digits.toString();}// Unit testpublic static void main(String[] args) {String testInput = "abc123xyz456";String expectedOutput = "123456";String result = filterDigits(testInput);if (result.equals(expectedOutput)) {System.out.println("Test Passed!");} else {System.out.println("Test Failed. Expected: " + expectedOutput + ", Got: " + result);}}
}
執行結果:
二、注意事項
2.1 確保CodeGPT對話框選擇Deepseek V3大模型,如果使用收費的DeepSeek大模型請選擇Custom: OpenAI(安裝篇有介紹)
2.2 確保網絡正常:如果你使用的是在線服務(如 OpenAI),請確保網絡連接通暢。
2.3 保持更新:定期更新 CodeGPT 插件,以獲取最新功能和最好的兼容。
2.4 離線使用:如果你需要離線使用,可以結合工具如 Ollama 或 LM Studio,將模型部署在本地。
三、總結
? ?? 總體而言,Deepseek堪稱國內AI大模型中的佼佼者,以其卓越的兼容性和對眾多IDE的廣泛支持,為程序員們帶來了前所未有的便捷。其核心功能更是豐富多彩,令人眼前一亮:代碼解釋功能讓繁瑣復雜的代碼邏輯瞬間變得清晰明了;高效代碼優化技術,精準剔除冗余,助力性能飛躍;一鍵生成單元測試,為代碼質量筑起堅固防線;更有智能答疑解惑與模擬AI程序員輔助開發等實用功能,讓編程之路更加暢通無阻。作為編程領域的得力助手,Deepseek無疑將大幅提升程序員的開發效率,成為每一位編程愛好者不可或缺編程利器。
一、IDE集成DeepSeek保姆級教學(安裝篇)
– 歡迎點贊、關注、轉發、收藏【技術咖啡館C】,各大平臺同名。