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,一经查实,立即删除!

相关文章

TypeError: Descriptors cannot not be created directly.

问题&#xff1a; Traceback (most recent call last): File "main_VAE.py", line 2, in <module>import tensorflow as tfFile "D:\Anaconda\envs\tensorflow1\lib\site-packages\tensorflow\__init__.py", line 99, in <module> …

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

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

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

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

开发指南011-前端PC版结构

主要目录如下&#xff1a; public images -- 各类图片 static -- 各种js文件 src api --接口文件 qlmcomponents --平台组件 store --vuex styles --风格 router --路由 lang --语言包 utils -- 公用工具 views platform -- 平台所属页面 *** --对应产品页…

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

引言&#xff1a;对比DB / 表结构 : create , drop , alter 本次记录 数据操作 语言&#xff1a; 1.进入 hive 数据库&#xff0c;再打开 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各种接口、功能…

KY79 浮点数加法

描述&#xff1a; 求2个浮点数相加的和 题目中输入输出中出现浮点数都有如下的形式&#xff1a; P1P2…Pi.Q1Q2…Qj 对于整数部分&#xff0c;P1P2…Pi是一个非负整数 对于小数部分&#xff0c;Qj不等于0 输入描述&#xff1a; 对于每组案例&#xff0c;每组测试数据占2行&…

kafka集群介绍及搭建

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

navicat连接Oracle时报错解决方案

navicat连接Oracle时报错如下几种 navicat is not able to create oci handles oracle library is not loaded ORA-12514&#xff1a;TNS:listener does not currently know of service requested in connect descriptor 解决方案 1&#xff0c;从Oracle官网下载Oracle cl…

【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;只需传入不同的参数即可调用生成不同位置的轮子&…

SpringBoot---使用SpringTask定时任务

介绍 在SpringBoot项目中使用SpringTask定时任务 操作流程 第一步 创建定时任务类 首先在项目中创建一个task包&#xff0c;在task包中创建定时任务类 import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.spring…

java基础知识点学习路线整理

1、Java基本语法&#xff1a; 1.变量和## 标题数据类型&#xff08;如int、double、String等&#xff09;。 2.运算符&#xff08;算术、关系、逻辑、位、赋值等&#xff09;。 3.控制流语句&#xff08;if-else、switch、for、while、do-while等&#xff09;数组和集合&#…