Bito插件

此文档只作用于指导性工作,更多资料请自行探索。

1、插件安装与介绍

1.1 插件下载与安装

在idea中搜索:Bito

Bito is also available for:
​编辑VSCode
​编辑JetBrains
​编辑CLI

1.2 官方介绍

   插件:ChatGPT GPT-4 - Bito AI Code Assistant - IntelliJ IDEs Plugin | Marketplace

   官网:What's New | Be a 10x Dev with Bito AI

2、认识Bito

2.1 账户与费用

1)账户可以自行注册gmail或其他。

2)费用是多少?Bito 目前处于 alpha 阶段,可以免费使用。

      将来可能会提供始终使用 GPT-4 或其他高级型号的付费版本。但是,我们的内部测试表明,简单提示和短提示的输出质量在 3.5 和 4 之间没有太大区别。GPT-4 的全部好处是在复杂、冗长的提示中实现的,或者当提示与模型可能产生幻觉的利基事实相关时。Bito并未将“幻觉”视为其针对的开发相关用例的主要问题。

2.2 代码安全

bito会存储我的代码吗?在建造Bito时,安全和隐私是我们的首要考虑因素。Bito 永远不会存储或查看您的任何代码。所有消息和元数据在传输过程中加密,在静态加密。

2.3 支持多国语言

输入时无论是哪一种语言,输出都是按你这边设置的语言显示

2.3 附加功能

    1)自动将Bito在差异视图中生成的任何新代码与现有代码进行比较。这使您可以轻松地仅集成所需的行或部分。

    2)提出后续问题以优化输出,AI 助手会考虑聊天历史记录作为上下文。这有助于您获得更准确和相关的结果。

    3)在几秒钟内获得闪电般的结果,使您能够以最小的延迟访问所需的信息。

2.4 自定义模板

将常用提示保存为自定义模板并轻松执行。

自定义提示模板简介:Bito 允许你为 IDE 创建和保存自定义提示模板。定义模板名称和提示,Bito 将在所选代码上执行它。你最多可以添加 4 个自定义模板,并根据需要编辑或删除它们。详细了解自定义提示模板。

2.5 工作区

如果你是组织的第一个用户,Bito 将要求你创建工作区。你可以设置它,以便具有相同域的每个人都可以自动加入,或者你可以将团队成员添加到你的工作区进行协作。当你有几个队友可以合作时,Bito 效果最好。

idea右边侧边栏:

idea右边侧边栏 →setting:Bito - Become a 10X dev

更改以中文作为输出结果,更改后在idea中重新登录会生效,注意:Bito 的所有回复都将以所选语言显示,无论输入语言如何。

3、使用技巧

3.1 (Explain Code,Alt+Shift+E)What does this code do? 解释代码:你不熟悉的解释代码

这段代码是一个批量插入的方法,它将传入的文章关键词列表按照指定的页面大小进行分页,然后分批次插入到数据库中。如果传入的列表为空,则直接返回,如果页面大小为空,则默认为1。

具体步骤如下:

  1. 首先判断传入的文章关键词列表是否为空,如果为空则直接返回。 

  2. 接下来判断传入的页面大小是否为空,如果为空则默认为1。

  3. 然后计算出需要分成多少页,根据列表大小和页面大小计算得出。

  4. 循环每一页,根据当前页码和页面大小计算出需要插入的子列表。

  5. 最后调用Dao层的批量插入方法将子列表插入到数据库中,如果出现异常则记录日志。

3.2(Generate Comment,Alt+Shift+V)Generate comment for this code 注释方法:注释方法和内部方法

生成备注:

  该方法用于批量插入文章关键词信息。如果传入的文章关键词列表为空,则直接返回。

  如果传入的每页插入数量为空,则默认为100。

  根据每页插入数量计算出总页数,然后按照每页插入数量将文章关键词列表拆分成多个子列表,每个子列表最多包含指定数量的文章关键词信息。

  然后循环插入每个子列表中的文章关键词信息,如果插入失败则记录错误日志。

3.3 (Performance Check,Alt+Shift+Q)Check for performance issues and rewrite the code  提高性能:轻松查找性能问题

针对代码性能的检查与优化后的代码:

   1. 在第5行中,检查了两次articleWordList是否为空。应该只检查一次。

   2. 在第7行中,计算了pageCount,但是这个值在循环中没有改变,因此可以将其提到循环外。

   3. 在第12-17行中,使用了try-catch语句来处理异常。这种方式会影响性能,因此应该尽可能避免使用它。

以下是修改后的代码:

    (修改后的代码挑选,Bito AI:Diff view)

3.4 (Security Check,Alt+Shift+Z)Check for security issues and rewrite the code  检查安全性:确保没有安全漏洞

针对代码安全的检查与优化后的代码:

   1. 没有进行参数校验,articleWordList和insertPageSize可能为空或者非法,需要对这两个参数进行校验;

   2. 代码中使用了try-catch捕获异常,但是没有具体处理异常的方式,需要对异常进行具体的处理;

   3. 在异常处理中,使用了log.error输出了异常信息,但是没有对异常进行处理,需要在输出异常信息的同时,对异常进行处理。

以下是修改后的代码:

    (修改后的代码挑选,Bito AI:Diff view)

3.5 (Style Check,Alt+Shift+U)Check for style issues and rewrite the code 检查风格并优化代码

针对代码风格的检查与优化后的代码:

  1. 方法名应该采用驼峰式命名,insertBatch应该改为insertBatchWords

  2. 方法参数articleWordList应该改为articleWordsList,更符合Java命名规范

  3. 方法参数insertPageSize应该改为pageSize,更符合Java命名规范

  4. if(CollectionUtils.isEmpty(articleWordList))代码块重复了,应该删除一个

  5. Integer pageCount的计算可以提取为一个独立的方法,以提高代码可读性

  6. for循环中的变量i应该改为更具有可读性的currentPage

  7. subarticleIdList变量名不规范,应该改为subArticleWordList

  8. try-catch语句中的日志输出应该更详细,应该包括出错的具体位置

  9. 方法中的注释不够清晰,应该提供更详细的解释

以下是修改后的代码:

    (修改后的代码挑选,Bito AI:Diff view)

3.6 (Improve Readability)Make code more readable and rewrite the code 重写这些代码以提高可读性

以下是修改后的代码:

    (修改后的代码挑选,Bito AI:Diff view)

3.7 (Clean Code)Clean this code and rewrite the code 删除掉日志与调试代码,包含注释

3.8 (Generate Unit Tests)Generate unit test case for this code

这里运用了Bito的上下文,以及3.5转4的特点,最终多执行一次,得到对应的测试用例代码

3.9 (自定义 findbug)Identify defects and potential risks, and modify the code

待继续挖掘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/758365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双向链表、单双向链表比较、双向链表的基本操作

我要成为嵌入式高手之3月20日数据结构第三天!! ———————————————————————————— 双向链表 双向链表与单向链表的区别:双向链表中的结点的指针域包含前驱结点的地址,而单向链表的结点中指针域只有后驱结…

Q-Tester:适用于开发、生产和售后的诊断测试软件

Q-Tester.Expert是一款基于ODX(ASAM MCD-2D / ISO 22901-1)国际标准的工程诊断仪。通过此诊断仪可实现与ECU控制器之间的数据交互。这一基于ODX国际标准的解决方案,其优势在于:ODX数据库不仅可在开发部门交互,而且可在…

DML - 增删改(insert into,delete,update)

引言:对比DB / 表结构 : create , drop , alter 本次记录 数据操作 语言: 1.进入 hive 数据库,再打开 ryx1 表 2. insert select 3. update select 4. delete select

python---练习2

1、打印图案 &#xff08;1&#xff09;直角三角形 #多层循环layer int(input("请输入您要打印的层数&#xff1a; "))index 1 while index < layer : #外层循环控制层数j 1while j < index : #内层循环控制每层个数print (&qu…

C++进阶:二叉搜索树介绍、模拟实现(递归迭代两版本)及其应用

上次介绍完多态后&#xff1a;C进阶&#xff1a;详解多态&#xff08;多态、虚函数、抽象类以及虚函数原理详解&#xff09; 也是要开始继续学习了 文章目录 1.二叉搜索树1.1概念1.2二叉搜索树特性1.3 二叉搜索树的操作 2.模拟实现2.1项目文件规划2.2基本结构2.3各种接口、功能…

kafka集群介绍及搭建

介绍 kafka是一个高性能、低延迟、分布式的消息传递系统&#xff0c;特点在于实时处理数据。集群由多个成员节点broker组成&#xff0c;每个节点都可以独立处理消息传递和存储任务。 路由策略 发布消息由key、value组成&#xff0c;真正的消息是value&#xff0c;key是标识路…

【prometheus-operator】k8s监控集群外redis

1、部署exporter GitHub - oliver006/redis_exporter: Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x, 6.x, and 7.x redis_exporter-v1.57.0.linux-386.tar.gz # 解压 tar -zxvf redis_exporter-v1.57.0.linux-386.tar.gz # 启动 nohup ./redi…

Java基础 学习笔记九

for循环 for循环语句的语法结构 for(初始化表达式;条件表达式;更新表达式){循环体;}初始化表达式最先被执行&#xff0c;而且只执行一次条件表达式的执行结果必须是一个布尔类型的值更新表达式一般是负责更新某个变量值的&#xff08;只有更新了某个变量值&#xff0c;条件表达…

Visual Studio 2013 - 重置窗口布局

Visual Studio 2013 - 重置窗口布局 1. Microsoft Visual Studio 2013 - 重置窗口布局References 1. Microsoft Visual Studio 2013 - 重置窗口布局 窗口 -> 重置窗口布局 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

API接口采集淘宝商品详情数据获取属性价格详情图等

什么是电商APIAPI全称应用程序编程接口&#xff08;Application Programming Interface&#xff09;&#xff0c;是一组用于访问某个软件或硬件的协议、规则和工具集合。电商API就是各大电商平台提供给开发者访问平台数据的接口。目前&#xff0c;主流电商平台如淘宝、天猫、京…

软件工程导论画图题汇总:期末+复试

文章目录 一、数据模型&#xff1a;实体联系图&#xff08;E-R图&#xff09;二、行为模型&#xff1a;状态转换图三、功能模型&#xff1a;数据流图四、数据字典五、系统流程图六、层次图七、HIPO图八、结构图九、程序流程图十、盒图十一、PAD图十二、判定表、判定树 一、数据…

EF数据持久化(三层架构,客户增删)

效果图 点击新增按钮 点击添加 添加成功展示新增数据 点击删除&#xff0c;出现删除选项&#xff0c;点击确定根据id删除成功 成功删除 实现过程 Model设置具体流程在下面链接中 https://blog.csdn.net/Mr_wangzu/article/details/136805824?spm1001.2014.3001.5501 DAL …

函数栈帧的创建和销毁 - 局部变量|函数传参|函数调用|函数返回|图文详解

目录 1.寄存器EBP和ESP 2.函数栈帧的创建 3.函数的调用 4. 函数栈帧的销毁 函数栈帧&#xff08;function stack frame&#xff09;是在函数调用期间在栈上分配的内存区域&#xff0c;用于存储函数的局部变量、参数、以及用于函数调用和返回的相关信息。每当函数被调用时&a…

ros小问题之差速轮式机器人轮子不显示(rviz gazebo)

在rviz及gazebo练习差速轮式机器人时&#xff0c;很奇怪&#xff0c;只有个机器人的底板及底部的两个万向轮&#xff0c;如下图&#xff0c; 后来查看相关.xacro文件&#xff0c;里面是引用包含了轮子的xacro文件&#xff0c;只需传入不同的参数即可调用生成不同位置的轮子&…

1058:求一元二次方程

【题目描述】 利用公式 求一元二次方程axbxc0的根&#xff0c;其中a不等于0。结果要求精确到小数点后5位。 【输入】 输入一行&#xff0c;包含三个浮点数a,b,c&#xff08;它们之间以一个空格分开&#xff09;&#xff0c;分别表示方程axbxc0的系数。 【输出】 输出一行&…

航顺车规级SoC全新亮相,助推汽车智能化发展

受益于汽车电动化、智能化和网联化的推进&#xff0c;汽车车身域和座舱域MCU市场规模持续扩大。据统计&#xff0c;2021年中国车载芯片MCU市场规模达30.01亿美元&#xff0c;同比增长13.59%&#xff0c;预计2025年市场规模将达42.74亿美元。 在技术要求方面&#xff0c;对…

MyBatisPlus 之四:MP 的乐观锁和逻辑删除、分组、排序、链式的实现步骤

乐观锁 乐观锁是相对悲观锁而言的&#xff0c;乐观锁假设数据一般情况不会造成冲突&#xff0c;所以在数据进行提交更新的时候&#xff0c;才会正式对数据的冲突与否进行检测&#xff0c;如果冲突&#xff0c;则返回给用户异常信息&#xff0c;让用户决定如何去做。 乐观锁适用…

[Qt学习笔记]QT下获取Halcon图形窗口鼠标事件并执行相应操作

目录 1、背景2、参考信息3、目标4、步骤4.1 Halcon库的配置4.2 读取图像&#xff0c;并实现图像自适应窗体控件大小4.3 主要的图形绘制和贴图操作见如下代码&#xff0c;其中重点为全局函数的创建来实现选择Select、拖拽Drag和尺寸Resize事件响应。 5、总结 1、背景 在视觉项目…

3.19作业

1、思维导图 2、模拟面试题 1&#xff09;TCP通信中的三次握手和四次挥手 答&#xff1a;三次握手 客户端向服务器发送连接请求 服务器向客户端回复应答并向客户端发送连接请求 客户端回复服务端&#xff0c;并建立联系 四次挥手 进程a向进程b发送断开连接请求…

3.20作业

1、思维导图 2、 1> 创建一个工人信息库&#xff0c;包含工号&#xff08;主键&#xff09;、姓名、年龄、薪资。 2> 添加三条工人信息&#xff08;可以完整信息&#xff0c;也可以非完整信息&#xff09; 3> 修改某一个工人的薪资&#xff08;确定的一个&am…