Baidu Comate:释放编码潜能,革新软件开发
Baidu Comate
Baidu Comate,智能代码助手,凭借着文心大模型的强大支撑,结合了百度多年的编程实战数据和丰富的开源资源,形成了一款崭新的编码辅助利器。它不仅具备着高智能、多场景、价值创造的特质,更可广泛应用于各种编码任务中,实现着 '帮你想、帮你写、帮你改' 的全方位辅助。Baidu Comate,是释放编码效率、释放软件生产力的典范。
安装使用
安装方面,我通过IDEA的插件进行了体验。在插件市场中下载安装后,重启IDE。

重启之后,右下角回弹出登陆提醒,然后进行登陆。

登陆之后返回IDEA,侧边栏会有BaiduComate,点开会有对话框。

使用体验
通过官网了解该产品,我主要看重的功能有以下几个,通过一个项目测试一下。
1.快速上手项目
当前我有一个meetingroom的项目,模拟我第一次接触该项目,我可以让Baidu Comate帮我分析该目录的架构以及里面的文件,快速的上手该项目。
分析一下左边项目的架构

分析左边meetingroom目录下的文件

在
meetingroom目录下,主要包含了项目的核心控制器(Controller)、服务实现(ServiceImpl)以及实体类(Entity)等文件。下面是对这些文件的分析:控制器层(Controller)
在
com.meetingroom.controller包中,MeetingroomController类定义了会议室相关的RESTful API接口。这些接口包括:
查询所有会议室信息 (
/list):该方法接受一个参数映射params,然后调用meetingroomService的queryPage方法查询分页数据,并返回查询结果。通过ID查询指定会议室信息 (
/info/{roomId}):该方法通过@PathVariable注解获取路径变量roomId,然后调用meetingroomService的getById方法查询单个会议室实体,并返回查询结果。新增会议室信息 (
/save):该方法使用@RequestBody注解接收前端发送的MeetingroomEntity对象,然后调用meetingroomService的save方法保存会议室信息,并返回添加成功的结果。修改会议室信息 (
/update):与新增会议室信息类似,该方法也接收一个MeetingroomEntity对象,但它是用于更新已有的会议室信息。服务实现层(ServiceImpl)
在
com.meetingroom.service.impl包中,MeetingroomServiceImpl类实现了MeetingroomService接口。当前仅给出了queryPage方法的实现:
- 查询分页数据 (
queryPage):该方法使用了MyBatis-Plus的分页功能,构建了一个IPage对象进行分页查询,然后利用QueryWrapper进行条件查询。最后,将查询结果封装到PageUtils对象中返回。实体类(Entity)
在
com.meetingroom.entity包中,MeetingroomEntity类代表了会议室实体,但具体的字段和属性没有给出。另外,还有一个FileEntity类,它代表了文件实体,包含了文件编号、名称、类型、大小、存储位置、逻辑删除状态、创建和更新时间以及创建和更新人的字段。配置文件
在
resources目录下,有两个配置文件application-prod.yml和application-dev.yml,分别用于生产环境和开发环境的配置。这些配置文件包含了数据库连接信息、MyBatis-Plus配置、服务器端口号以及JWT认证配置等。
#AccountService.java 分析该文件内容

通过以上的提问可以快速了解项目,以及具体文件的内容。
2.辅助项目开发

在书写的时候Baidu Comate就可以提供书写建议,按住Control+向下键逐行采纳,按住Control+向右键逐个采纳,Tab采纳。
请解释下面的函数

根据左侧的Entit生成对应的service和Controller,要增加升档的注释,保持风格一致,给出完整的代码

在官网上,还有另外一些实操场景
- 根据当前文件里的SQL,创建对应的PO、mapper,要增加适当的注释、注解、保持风格一致,给出完整代码
- 梳理实体,帮我生成建表SQL,要求根据对应的查询方法,给出合适的索引,并且要增加注释
- 参考ProjectController示例,给我生成一个ReportController,要有报告的增删改查方法,保持编码风格一致
- 参考AgentPO及其Repository,编写PlanPO的相关方法,代码要完整,不要省略
3.测试部署
Baidu Comate还提供了测试样例的功能,这对于开发者来说是一个极大的帮助。测试样例可以帮助开发者验证他们的代码是否符合预期的行为,并帮助他们发现潜在的错误和问题。
通过提供测试样例,Baidu Comate使得测试变得更加简单和高效。开发者可以快速创建和运行测试样例,从而更加自信地提交他们的代码。
这里有快捷操作,可以生成选中代码的测试代码

在BaiduComate官方,还有基于现有代码生成复杂单测的案例
总结
总的来说,Baidu Comate以其高智能、多场景、价值创造的特点,为开发者提供了全方位的编码辅助,助力提高编码效率和释放软件生产力。我很欣赏它能对整个项目进行分析,这对于一个项目的快速上手大有裨益。通过分析项目架构和文件内容,开发者可以快速了解项目的整体结构和各个文件的作用,从而更加迅速地融入到项目开发中。这种功能不仅节省了开发者的时间,也提高了他们的工作效率,让开发过程更加顺畅。期待在使用的过程中能发掘出更高效更有趣的玩法,进一步提升编码体验。
相关文章:
Baidu Comate:释放编码潜能,革新软件开发
Baidu Comate Baidu Comate,智能代码助手,凭借着文心大模型的强大支撑,结合了百度多年的编程实战数据和丰富的开源资源,形成了一款崭新的编码辅助利器。它不仅具备着高智能、多场景、价值创造的特质,更可广泛应用于各…...
MATLAB的Bar3函数调节渐变色(内附渐变色库.mat及.m文件免费下载链接)
一. colormap函数 可以使用colormap函数: t1[281.1,584.6, 884.3,1182.9,1485.2; 291.6,592.6,896,1197.75,1497.33; 293.8,596.4,898.6,1204.4,1506.4; 295.8,598,904.4,1209.0,1514.6];bar3(t1,1) set(gca,XTickLabel,{300,600,900,1200,1500},FontSize,10) set…...
使用 TensorFlow.js 和 OffscreenCanvas 实现实时防挡脸弹幕
首先,要理解我们的目标,我们将实时获取视频中的面部区域并将其周围的内容转为不透明以制造出弹幕的“遮挡效应”。 步骤一:环境准备 我们将使用 TensorFlow.js 的 Body-segmentation 库来完成面部识别部分,并使用 OffscreenCanv…...
【计算机网络篇】数据链路层(10)在物理层扩展以太网
文章目录 🍔扩展站点与集线器之间的距离🛸扩展共享式以太网的覆盖范围和站点数量 🍔扩展站点与集线器之间的距离 🛸扩展共享式以太网的覆盖范围和站点数量 以太网集线器一般具有8~32个接口,如果要连接的站点数量超过了…...
conan2 基础入门(03)-使用(msvc为例)
conan2 基础入门(03)-使用(msvc为例) 文章目录 conan2 基础入门(03)-使用(msvc为例)⭐准备生成profile文件预备文件和Code ⭐使用指令预览正确执行结果可能出现的问题 ⭐具体讲解conanconanfile.txt执行 install cmakeCMakeLists.txt生成项目构建 END ⭐准备 在阅读和学习本文…...
uniapp this 作用域保持的方法
在 UniApp(或任何基于 Vue.js 的框架)中,this 关键字通常用于引用当前 Vue 实例的上下文。然而,当你在回调函数、定时器、Promise、异步函数等中使用 this 时,你可能会发现 this 的值不再指向你期望的 Vue 实例&#x…...
vue2 与vue3的差异汇总
Vue 2 与 Vue 3 之间存在多方面的差异,这些差异主要体现在性能、API设计、数据绑定、组件结构、以及生命周期等方面。以下是一些关键差异的汇总: 数据绑定与响应式系统 Vue 2 使用 Object.defineProperty 来实现数据的响应式,这意味着只有预…...
Java反射(含静态代理模式、动态代理模式、类加载器以及JavaBean相关内容)
目录 1、什么是反射 2、Class类 3、通过Class类取得类信息/调用属性或方法 4、静态代理和动态代理 5.类加载器原理分析 6、JavaBean 1、什么是反射 Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得…...
Scoop国内安装、国内源配置
安装配置源可参考gitee上的大佬仓库,里面的步骤、代码都很详细,实测速度也很好 glsnames/scoop-installer 也可以结合其它bucket使用 使用Github加速网站,也可以换做其他代理方式,自行测试 例如:https://mirror.ghprox…...
【软件开发规范篇】JAVA后端开发编程规范
作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是࿰…...
数据结构与算法学习笔记三---循环队列的表示和实现(C语言)
目录 前言 1.为啥要使用循环队列 2.队列的顺序表示和实现 1.定义 2.初始化 3.销毁 4.清空 5.空队列 6.队列长度 7.获取队头 8.入队 9.出队 10.遍历队列 11.完整代码 前言 本篇博客介绍栈和队列的表示和实现。 1.为啥要使用循环队列 上篇文章中我们知道了顺序队列…...
vue3中的reactive和ref
在Vue 3中,reactive和ref是两个常用的响应式API,用于创建响应式的数据。它们的主要区别在于reactive用于创建对象或数组的响应式引用,而ref用于创建单个值的响应式引用。下面我将分别介绍它们的详细用法,并提供代码示例。 1. rea…...
Centos安装 docker和docker-compose
安装docker yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker docker version 在L…...
VUE 或 Js封装通用闭包循环滚动函数
1、vue3 闭包滚动函数的使用 js 调用也基本雷同 // 滚动Tab组件const scoreTabRef ref()// 滚动的选项const scrollOption ref({// 滚动的Dom元素scrollDom: null,// 滚动的时间间隔scrollInterval: 1500,// 滚动的距离scrollSep: 100,// 滚动历时时间scrollDuration: 10…...
个人所得税计算器
个人所得税计算器 本文使用drools规则引擎根据预定义的规则计算个人所得税。我国个人所得税的纳税义务人是在中国境内居住有所得的人,以及不在中国境内居住而从中国境内取得所得的个人,包括中国国内公民,在华取得所得的外籍人员和港、澳、台同胞。个人所得税的计算公式如下…...
网络工程师----第二十四天
计算机基础 第一章:概述 互联网的组成: (1)边缘部分:由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。 (2…...
后端常用技能:基于easy-poi实现excel一对多、多对多导入导出【附带源码】
0. 引言 在业务系统开发中,我们经常遇到excel导入导出的业务场景,普通的excel导入导出我们可以利用 apache poi、jxl以及阿里开源的easyexcel来实现,特别easyexcel更是将excel的导入导出极大简化,但是对于一些负载的表格形式&…...
PDF转word转ppt软件
下载地址:PDF转word转ppt软件.zip 平时工作生活经常要用到PDF转word转ppt软件,电脑自带的又要开会员啥的很麻烦,现在分享这款软件直接激活就可以免费使用了,超级好用,喜欢的可以下载...
如何评价2023年第八届数维杯数学建模ABC题?
2024年第九届数维杯大学生数学建模挑战赛将于北京时间2024年5月10日08:00至5月13日09:00举行,竞赛倒计时17天,近期准备参加的同学还是很迷茫,不知道如何选题解题,今天整理数维杯选题策略,这里也预祝同学们在竞赛中取得好成绩! 竞赛特点 数维杯大学生数学建模挑战赛每年分…...
CentOS 7 :虚拟机网络环境配置+ 安装gcc(新手进)
虚拟机安装完centos的系统却发现无法正常联网,咋破! 几个简单的步骤: 一、检查和设置虚拟机网络适配器 这里笔者使用的桥接模式,朋友们可以有不同的选项设置 二、查看宿主机的网络 以笔者的为例,宿主机采用wlan上网模…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
深度解析云存储:概念、架构与应用实践
在数据爆炸式增长的时代,传统本地存储因容量限制、管理复杂等问题,已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性,成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理,云存储正重塑数据存储与…...
基于Python的气象数据分析及可视化研究
目录 一.🦁前言二.🦁开源代码与组件使用情况说明三.🦁核心功能1. ✅算法设计2. ✅PyEcharts库3. ✅Flask框架4. ✅爬虫5. ✅部署项目 四.🦁演示效果1. 管理员模块1.1 用户管理 2. 用户模块2.1 登录系统2.2 查看实时数据2.3 查看天…...
