赞
踩
在数字化高速发展的今天,编程技术已成为推动创新与技术革新的核心动力。伴随着软件项目的复杂性和规模不断扩大,编码过程中的挑战也日益增加。为了解决这些问题以达到降本增效的目的,百度推出了基于文心大模型的Baidu Comate智能编码助手,一个全新的编码辅助工具!致力于帮助开发者们提高编码效率,释放软件生产力,真正做到降本增效。
Baidu Comate智能编码助手是一款集成了先进人工智能技术的编码辅助工具,它具备代码智能、场景丰富、创造价值、广泛应用等多重优势。通过智能推荐、自动生成、深度解读等功能,Baidu Comate能够帮助开发者们实现“帮你想、帮你写、帮你改”的场景应用形态,极大提升了编码的效率和准确性。
代码智能:Baidu Comate拥有强大的代码理解和分析能力,能够准确理解开发者的编程意图,并基于文心大模型提供智能的代码推荐和优化建议。
场景丰富:Baidu Comate支持100多种语言和多种IDE平台,覆盖了从前端开发到后端架构的全方位需求,满足不同开发场景下的编码需求。
创造价值:通过深度解读企业和个人的私域代码库,Baidu Comate能够发现潜在的代码缺陷和性能瓶颈,并提供针对性的优化方案,帮助企业创造价值。
广泛应用:Baidu Comate不仅适用于个人开发者,也适用于大型企业团队。过去一年多来,Baidu Comate已经走入了上万家企业,生成的代码采纳率高达46%。
注意:本次教程是在已安装 IntelliJ IDEA 的情况下展开的。
安装
前置条件
环境要求
- 操作系统版本:Windows 8.1 及以上、macOS、Linux;
- JetBrains版本:2021.1 及以上版本;
macOS系统:IntelliJ IDEA 菜单下点击设置。
Windows:文件菜单下点击设置。此处以Win10为例进行下载安装。
点击【Plugins】,进入 Marketplace 选项卡,搜索框输入【Comate】,找到 Baidu Comate 后点击安装。
重启 IntelliJ IDE,重启成功后登录百度账号,即可开启智能编码之旅。
安装到此结束,下面是完成用户名和 License 的配置步骤。
配置
对于无 License 的用户,完成登录即可体验 Baidu Comate 编码助手的各项功能,否则不能使用。
重启后点击侧边栏,再点击框中图标,即可跳转至浏览器登录。
登陆后进行授权
然后来到主页面,点击个人信息,查看 License
复制License,返回IDEA进入配置中心,并粘贴License,即可完成配置。
不要忘记点击Apply,然后就可以使用Comate的功能了。
Baidu Comate的安装与配置到此结束。
本部分重点介绍Baidu Comate的核心应用场景。
基于文心大模型,Baidu Comate能够智能分析代码上下文,推荐最符合开发者意图的代码片段,提高编码速度和准确性。
亲测非常实用,使用场景最多的功能,当我们编程时在打开一个代码文件后,在编码过程中稍微等待一下,即可看到 Baidu Comate 的推荐内容。
按下tab键即可采纳推荐内容,非常快捷。
还有一些常用的快捷键,整理出来分享给大家。
操作 | macOS | Windows |
---|---|---|
采纳推荐 | Tab | Tab |
取消推荐 | esc | esc |
查看上一推荐 | option + [ | Alt + [ |
查看下一推荐 | option + ] | Alt + ] |
按单词部分采纳推荐(仅适用于 Visual Studio Code) | ⌘ + → | Ctrl + → |
唤起 Baidu Comate 对话框(Visual Studio Code) | ⌘ + Y | Windows徽标键 + Y |
唤起 Baidu Comate 对话框(JetBrains IDEs) | ⌘ + Shift + Y | Ctrl + Shift + Y |
不仅如此,还有多行推荐,用于for循环、if判断等,行间提示等等功能,都非常奈斯,这里不详细介绍了,有兴趣的点击文末链接即可跳转体验!!
Baidu Comate的智能生成也是非常的强大,比如我们可以根据注释生成代码片段。
不仅如此,如果你觉得不够完美,还可增强生成代码。
注释生成代码后,出现“增强生成”按钮;
点击“增强生成”,调出 Baidu Comate 对话框;
等待结果返回。
还有个非常好用的生成功能,针对一段函数(方法),生成其对应的单元测试代码。
单测代码 如下
- package com.zzmr.traintimeback;
-
- import static org.junit.jupiter.api.Assertions.assertEquals;
- import org.junit.jupiter.api.Test;
-
- class ProductorTest {
-
- @Test
- void testGetMaxWithPositiveValues() {
- int[] arr = {1, 3, 5, 7};
- int max = Productor.getMax(arr);
- assertEquals(7, max, "The getMax method should return the correct maximum value.");
- }
-
- @Test
- void testGetMaxWithNegativeValues() {
- int[] arr = {-1, -3, -5, -7};
- int max = Productor.getMax(arr);
- assertEquals(-1, max, "The getMax method should return the correct maximum value.");
- }
-
- @Test
- void testGetMaxWithPositiveAndNegativeValues() {
- int[] arr = {1, -3, 5, -7};
- int max = Productor.getMax(arr);
- assertEquals(5, max, "The getMax method should return the correct maximum value.");
- }
-
- @Test
- void testGetMaxWithAllNegativeValues() {
- int[] arr = {-1, -3, -5, -7};
- int max = Productor.getMax(arr);
- assertEquals(-1, max, "The getMax method should return the correct maximum value.");
- }
-
- @Test
- void testGetMaxWithEmptyArray() {
- int[] arr = {};
- int max = Productor.getMax(arr);
- assertEquals(Integer.MIN_VALUE, max, "The getMax method should return the minimum integer value for an empty array.");
- }
-
- @Test
- void testGetMaxWithSingletonArray() {
- int[] arr = {0};
- int max = Productor.getMax(arr);
- assertEquals(0, max, "The getMax method should return the only value of an array with a single element.");
- }
-
- @Test
- void testGetMaxWithTwoElementsInArray() {
- int[] arr = {2, 1};
- int max = Productor.getMax(arr);
- assertEquals(2, max, "The getMax method should return the correct maximum value of two elements in the array.");
- }
- }
可以看出,确实能大大提高编程效率,达到降本增效 的目的。
上文中除了单测,还有代码解释功能,非常有助于我们进行代码的学习。
可以看出它解释得非常细致且全面,有利于我们对代码彻底的熟练掌握,我认为Baidu Comate智能编码助手会成为我们学习中不可或缺的工具。
当然还有一些生成文档注释,生成行间注释,代码调优建议,长函数拆分等比较经典的功能,博主就不一一介绍了,以下是博主的实战gif,感兴趣的伙伴可以看看~有兴趣就点击文末链接自己体验一把吧!
行间注释
调优建议
Baidu Comate 提供多轮对话智能问答功能,拒绝跳转和打扰,让开发者直接在 IDE 中解决研发问题,真正做到让开发者体验沉浸式编程。
为大家整理了唤起 Baidu Comate 对话框的快捷方式
操作 | macOS | Windows |
---|---|---|
采纳推荐 | Tab | Tab |
取消推荐 | esc | esc |
查看上一推荐 | option + [ | Alt + [ |
查看下一推荐 | option + ] | Alt + ] |
按单词部分采纳推荐(仅适用于 Visual Studio Code) | ⌘ + → | Ctrl + → |
唤起 Baidu Comate 对话框(Visual Studio Code) | ⌘ + Y | Windows徽标键 + Y |
唤起 Baidu Comate 对话框(JetBrains IDEs) | ⌘ + Shift + Y | Ctrl + Shift + Y |
这也是一个非常常用的功能,熟悉快捷键之后,效率会大大提升。
多轮对话
我们可以与小助手进行多轮对话,不断提出新的需求,小助手也会不断根据需求产出我们需要的结果。还有意见反馈功能,我们提出的意见也能帮助小助手更深层次理解我们的编程风格,编程习惯,与我们相辅相成,共同提升工作效率,简直是太爱了。
下面也是博主正在开发的大型项目,也是经常用到小助手来辅助开发,通过智能问答的方式,不断的对代码进行调优,提升代码质量!
实战问答
多轮对话
十分具有体验感和实用性,各位小伙伴快尝试起来吧。
不仅如此,在项目中, Baidu Comate智能编码助手的表现更让我对这款编程助手爱不释手!
在我的项目中,想询问的是小助手对分页查询功能的理解,以及改进和优化的建议,看看它能否给出让人满意的答案!
- /**
- * 后端列表
- */
- @RequestMapping("/page")
- public R page(@RequestParam Map<String, Object> params,CaigoujiluEntity caigoujilu,
- HttpServletRequest request){
- EntityWrapper<CaigoujiluEntity> ew = new EntityWrapper<CaigoujiluEntity>();
- PageUtils page = caigoujiluService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, caigoujilu), params), params));
-
- return R.ok().put("data", page);
- }
这段代码是一个 Spring MVC 控制器中的方法,用于处理前端发送的保存请求,我们用小助手看看有什么调优建议,能提升系统的性能,或者有什么BUG。
- /**
- * 后端保存
- */
- @RequestMapping("/save")
- public R save(@RequestBody CaigoujiluEntity caigoujilu, HttpServletRequest request){
- caigoujilu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
- //ValidatorUtils.validateEntity(caigoujilu);
- caigoujiluService.insert(caigoujilu);
- return R.ok();
- }
看看小助手给出的分析:
代码问题分析:
逻辑bug:生成ID的方式可能产生冲突。使用
new Date().getTime()
与Math.random()*1000
的结合虽然在一定程度上增加了随机性,但仍然有可能在并发情况下或者极短时间内产生相同的ID,这不是一个安全的生成唯一标识符的方法。安全漏洞:注释掉了验证实体的代码
//ValidatorUtils.validateEntity(caigoujilu);
。这可能导致接收到的caigoujilu
实体数据不合法或包含潜在风险,未进行验证就直接插入数据库可能引发数据完整性和安全问题。代码风格:
new Double(Math.floor(Math.random()*1000)).longValue()
这一串代码可以进行简化,直接使用Math
相关方法转换,避免不必要的装箱和拆箱操作。修复后代码
/** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody CaigoujiluEntity caigoujilu, HttpServletRequest request){ // 启用实体验证,确保数据合法性 ValidatorUtils.validateEntity(caigoujilu); // 使用更安全的方式生成唯一ID(示例,具体实现可能依赖实际业务逻辑) long uniqueId = System.currentTimeMillis() + (long)(Math.random() * 1000L); // 或者考虑使用UUID、数据库自增ID、雪花算法等更可靠的方式来生成ID caigoujilu.setId(uniqueId); caigoujiluService.insert(caigoujilu); return R.ok(); }优化点总结:
- ID生成策略:应使用更加可靠和安全的ID生成策略,如UUID、数据库自增ID、雪花算法等,以确保在并发情况下ID的唯一性。
- 输入验证:不应注释掉验证代码,所有从外部接收的数据在进行进一步处理之前都应进行严格的验证,以确保数据的安全性和合法性。
- 代码简化:避免不必要的装箱和拆箱操作,直接进行基本数据类型的计算和转换,以提高代码效率和可读性。
可以看出分析和修复都十分完善,具有很高的可行性,博主觉得日常开发中学会了Baidu Comate智能编码助手的使用一定能提升编程效率,解放生产力。
Baidu Comate智能编码助手是百度在人工智能领域的一次重要尝试和创新,它不仅为开发者们提供了一个强大的编码辅助工具,更为整个软件行业带来了革命性的变革。在未来,博主认为随着人工智能技术的不断发展和完善,Baidu Comate智能编码助手将继续引领编码新时代的发展潮流,成为更多开发者和企业的智能伙伴,带领更多开发者和众多企业降本增效,共谋发展!相信看到这里你对Comate已经有了初步的了解,如果想体验沉浸式的编程工作或者进行编程学习,就快点击链接去体验吧!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。