二、IDE集成DeepSeek保姆级教学(使用篇)

各位看官老爷好,如果还没有安装DeepSeek请查阅前一篇

一、IDE集成DeepSeek保姆级教学(安装篇)

一、DeepSeek在CodeGPT中使用教学

1.1、Edit Code 编辑代码

选中代码片段 ---> 右键 ---> CodeGPT ---> Edit Code, 输入自然语言可编辑代码,点击Submit提交


基本是按自然语言生成的,补全后的代码如下

java 复制代码
	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,还提升了性能,下面附上完整的优化代码:

java 复制代码
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 方法减少重复代码

java 复制代码
// 使用 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,优化代码功能可以帮助程序员极大提高代码质量

优化后的完整代码如下:

java 复制代码
@Override
public String getGender(String identityCard) {
    // 检查身份证号是否为空或长度不为18
    if (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直接生成,做轻微调整就能用,极大减少了编写单元测试的时间

完整的单元测试代码如下:

java 复制代码
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class GenderUtilTest {

    @Test
    void testGetGender_Male() {
        String identityCard = "110105199003071234"; // 第17位为奇数
        assertEquals("男", GenderUtil.getGender(identityCard));
    }

    @Test
    void testGetGender_Female() {
        String identityCard = "110105199003071238"; // 第17位为偶数
        assertEquals("女", GenderUtil.getGender(identityCard));
    }

    @Test
    void testGetGender_NullInput() {
        String identityCard = null;
        IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> {
            GenderUtil.getGender(identityCard);
        });
        assertEquals("无效的身份证号码", exception.getMessage());
    }

    @Test
    void testGetGender_InvalidLength() {
        String identityCard = "11010519900307123"; // 长度不足18位
        IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> {
            GenderUtil.getGender(identityCard);
        });
        assertEquals("无效的身份证号码", exception.getMessage());
    }

    @Test
    void testGetGender_InvalidCharacter() {
        String identityCard = "11010519900307123X"; // 第17位为非数字字符
        assertThrows(NumberFormatException.class, () -> {
            GenderUtil.getGender(identityCard);
        });
    }
}

业务方法的调整需要调整下,第17位为偶数,第17位其实是3,不是偶数所以也需要调整下,其他的就没啥问题了。

1.7、Chat 聊天

单击右侧CodeGPT图标 ---> 在对话框输入你想要实现的内容(自然语言) ---> 单击发送图标即可生成代码,可以这么说会自然就能写代码的时代即将到来,AI 应用会越来越强大。

完整代码如下:

java 复制代码
public class DigitFilter {

    // Method to filter digits from a string
    public 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 test
    public 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】,各大平台同名。

相关推荐
假装我不帅1 小时前
wsl+vscode开发.net项目
ide·vscode·.net
小蕾Java2 小时前
【VSCode】Visual Studio Code 2025安装包及安装教程 (附所有版本下载)
ide·vscode·编辑器
达子6664 小时前
用Vscode编译正点原子ESP32例程报错:ninja: error: loading ‘build.ninja‘: 系统找不到指定的文件
ide·vscode·编辑器
OK_boom6 小时前
visual studio 打开设计时刻抛出异常“未能加载文件或程序集...”的另一解决方法
ide·visual studio
小蕾Java7 小时前
【VSCode】Visual Studio Code 2024安装包及安装教程 (附所有版本下载)
ide·vscode·编辑器
亚林瓜子8 小时前
在vscode中全选后,同时在每行行尾,开始多行编辑(Mac版)
ide·vscode·macos
和平hepingfly8 小时前
Claude 新发布的 Agent Skills 到底是啥?居然比 MCP 还厉害?
ai编程
吉米侃AI11 小时前
10分钟用AI做出第一个游戏!复刻童年黄金矿工
ai编程·claude
用户40993225021212 小时前
只给表子集建索引?用函数结果建索引?PostgreSQL这俩操作凭啥能省空间又加速?
后端·ai编程·trae
卷福同学13 小时前
【AI绘画】你有多久没有打开SD了?
后端·aigc·ai编程