当前位置:   article > 正文

Baidu Comate:让编码实现无限可能

Baidu Comate:让编码实现无限可能

1 背景介绍

Baidu Comate(智能代码助手)是基于文心大模型,结合百度积累多年的编程现场大数据和外部优秀开源数据,打造的新一代编码辅助工具。拥有代码智能、场景丰富、创造价值、广泛应用等多重产品优势,可实现“帮你想、帮你写、帮你改”的场景应用形态。提升编码效率,释放“十倍”软件生产力。
在这里插入图片描述

废话不多说,接下来直接上实操,文末附注册链接

2 快速入门

1. 安装 Baidu Comate
环境要求
操作系统版本:Windows 8.1 及以上、macOS、Linux;
JetBrains版本:2021.1 及以上版本;
步骤1:安装 Baidu Comate
以在 IntelliJ IDEA 中安装 Baidu Comate 为例。

点击 IntelliJ IDEA 界面中的 ‘File’ -> ‘Settings’ -> ‘Plugins’;
点击Marketplace选项卡,然后在搜索框中输入插件名称 ‘comate’;
在搜索结果中选择 Baidu Comate 插件,单击Install并重启IntelliJ IDEA。
在这里插入图片描述
2. 插件配置

  • 插件安装重启后,右下角会弹出登录提示框;
    在这里插入图片描述
    点击去登录链接,唤起登录页面,支持百度、微信、微博、QQ扫描登录。
    在这里插入图片描述
  • 登录后可免费使用基础功能,高级功能每周可免费使用300次,如需无限制使用可购买
  • 返回 IDE开始编码,即可体验 Comate 编码助手的各项功能

2.1 智能推荐功能

单行推荐是在续写代码场景中最直接、最高效的体现方式。在打开一个代码文件后,开始编码。在编码过程中稍微等待一下,即可看到 Baidu Comate 的推荐内容。
在这里插入图片描述
在这里插入图片描述

如果觉得推荐内容不错,即可使用tab键采纳,否则可以使用ESC键取消推荐。此外,在 Visual Studio Code 中,还可以按单词采纳部分推荐,方便按您的意图修改代码。
在这里插入图片描述

2.2 智能生成功能

2.2.1 智能注释

注释生成代码是针对一段注释内容,生成相关的代码片段。适用于能够使用一句话描述清楚需求的情形,或生成常见的算法片段。
当我们不清楚项目中一段代码的含义时,使用 Baidu Comate智能编码助手 可以一键为您解决问题,例:
项目中欧有如下代码

    @RequestMapping("/islogin")
    public AjaxResult isLogin(HttpServletRequest httpServletRequest){
        if(UserSessionTools.getLoginUser(httpServletRequest) == null){
            return AjaxResult.success(0);
        }
        return AjaxResult.success(1);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

当我们不清楚具体的含义时,可以使用多种方式去完成解释操作
点击插件图标,或使用快捷键 ⌘Y 唤起 Baidu Comate;
在输入框中输入问题,点击发送按钮;
等待返回结果;
点击“复制”,将生成内容复制至剪贴板。也可以手动复制所需内容;
进一步提出您的需求,或开启下一轮对话。

  • 函数注释
    在这里插入图片描述
    如果采纳,则此段函数注释即自动生成到代码函数上方,简单又方便,接下来,如果对整段代码的具体实现不是很清晰,使用 Baidu Comate智能编码助手 可以一键进行代码解释,只需要选中需要解释的代码即可
    在这里插入图片描述
    有了 Baidu Comate智能编码助手 再也不用担心看不懂业务代码啦 !
    有了上述的代码解释,针对代码进行一步生成注释岂不是更加轻松,支持一键针对你的代码生成行间注释,并经过采纳之后可以直接应用
    在这里插入图片描述
2.2.2 智能生成

1.先编写注释,在注释中描述你要写的代码内容,可以尝试生成一个完整的符合注释要求的代码内容
写一段注释说明,描述你想要实现的业务,然后按回车,可基于该注释生成代码,按Tab键采纳,否则按Esc键取消。咱们来个简单又经典的算法题吧,参考如下:
★求反数函数:给定一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如输入:x = 123 输出:321
在这里插入图片描述
当我们使用 对话生成的功能,生成我们想要的代码,例如:生成一段堆排序代码
在这里插入图片描述
同时也可以针对代码进行生成单元测试,即针对一段函数(方法),生成其对应的单元测试代码。
例:

/**
 * 实现验证码 存储到 session
 * @param request
 * @return
 */
@RequestMapping("/getcode")
public AjaxResult getCode(HttpServletRequest request) {
    String[] codeArr = codeTools.createImage();
    // 将验证码存储到 session
    HttpSession session = request.getSession();
    session.setAttribute(ApplicationVariable.SESSION_KEY_CHECK_CODE, codeArr[1]);
    return AjaxResult.success("/image/" + codeArr[0]);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

选中后,点击生成单测,即可生成单测代码,同时支持一键采纳代码 点击函数(方法)名前方的 Baidu Comate 图标,选择“函数注释”;
等待结果返回; 点击“采纳”,将注释内容插入函数(方法)头部。
在这里插入图片描述

package com.example.demo.controller;

import com.example.demo.common.AjaxResult;
import com.example.demo.common.ApplicationVariable;
import com.example.demo.common.CheckCodeTools;
import com.example.demo.service.UserService;

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.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpSession;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.*;

@ExtendWith(MockitoExtension.class)
public class UserControllerTest {

    @Mock
    private UserService userService;

    @Mock
    private CheckCodeTools codeTools;

    @InjectMocks
    private UserController userController;

    private MockHttpServletRequest request;
    private MockHttpSession session;

    @BeforeEach
    public void setUp() {
        request = new MockHttpServletRequest();
        session = new MockHttpSession();
        request.setSession(session);
    }

    @Test
    public void testGetCode() {
        String expectedCode = "testCode";
        when(codeTools.createImage()).thenReturn(new String[]{"testImageId", expectedCode});

        AjaxResult result = userController.getCode(request);

        assertEquals(200, result.getCode());
        assertEquals(expectedCode, session.getAttribute(ApplicationVariable.SESSION_KEY_CHECK_CODE));
        verify(codeTools, times(1)).createImage();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
2.2.3 智能调优

调优建议是一个旨在帮助开发者便捷优化其代码质量的功能,通过大语言模型分析所选函数(方法),提供有针对性的建议,如使代码更加规范易读,或提高执行效率、减少资源消耗。
JetBrains IDEs

点击函数(方法)名前方的 Baidu Comate 图标,选择“调优建议”即可使用该功能:
在这里插入图片描述
Baidu Comate 点击之后即可生成代码分析,同时也可以生成修复后的代码,也可以一键采纳或者复制。
在这里插入图片描述
优化点总结:
方法命名更具描述性,从getCode改为generateCaptchaAndStoreInSession。
变量codeArr重命名为captchaDetails,更具描述性。
增加了对codeTools.createImage()返回值的空值和长度检查,以避免潜在的数组越界异常。
注释提供了更多关于方法和变量用途的信息。

2.2.4 代码解释

顾名思义,就是对你的函数或者选中的 支持解释完整函数代码、解释选中代码
点击「代码解释」后,会在左侧对话框中出现对代码的解释,帮助快速理解代码,这个解释帮助你更好的理解这段代码是在做什么。总之,这一切对初学者来说都是很友好的。
在这里插入图片描述

3 高兼容性

在这里插入图片描述

  • 支持的编程语言 Language 当前 Baidu Comate 支持的语言/框架如下: Baidu Comate support
    following languages: 后端(BackEnd): C、C++、Java、Python、Go、PHP、Rust
    前端(FrontEnd):
    HTML、JavaScript、CSS、Less、swan、San、Vue、Scss、Sass、Stylus、pug、mermaid
    App端(APP): ObjectC、Kotlin、Swift 其它(Others):
    Perl、Ruby、Shell、vhdl、GraphQL、Dockerfile
  • 支持的 IDE
    JetBrains IDEs
    IDE 类型(IDE type):IntelliJ IDEA、PyCharm、GoLand、WebStorm、CLion、PhpStorm、Android Studio 等
    IDE 版本(IDE version):2021.1 - 2024
    Visual Studio Code
    IDE 版本(IDE version):1.70 +
    Xcode
    macOS版本(macOS version):v14 +
  • 支持的操作系统 System
    Windows 8.1 + 、macOS

4 即刻体验

scenarios-homepage


基于文心大模型,结合百度积累多年的编程现场大数据和外部优秀开源数据,为你生成更符合实际研发场景的优质代码。
提升编码效率,释放“十倍”软件生产力。

点击文章下方链接, 即刻体验,实现无限可能 !↓↓↓↓

点击前往官方注册

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/602200
推荐阅读
相关标签
  

闽ICP备14008679号