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

待继续挖掘。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LTD267次升级 | 商城升级线下退款功能 • 内容URL生成高清二维码 • 官微名片展示产品视频

1、商城优化退款功能,支持手动退款; 2、内容生成二维码支持高清分辨率; 3、平台版名片小程序产品橱窗支持视频内容; 4、 其他已知问题修复与优化; 01 商城 在本次升级中,我们对商城的退款功能做了改进与…

首席财务官期刊投稿邮箱

《首席财务官》杂志是由国家新闻出版总署批准的金融类期刊。杂志围绕“打造CFO新定义”而展开,定位于“国内国内第一本公开发行的面向CFO人群提供服务的专业资讯媒体”,核心围绕“竞争、资本、运营”三大要点展开,以CFO视角解读“公司金融&am…

Python的内建比较函数cmp比较原理剖析

Python中的cmp()函数用于比较两个对象的大小。 cmp( x, y):比较2个对象,前者小于后者返回-1,相等则返回0,大于后者返回1. Python的cmp比较函数比较原理 Python的cmp函数可以比较同类型之间,或者不同数据类型之间。然…

Nebula Graph-01-Nebula Graph简介和安装以及客户端连接

前言 NoSQL 数据库 图数据库并不是可以克服关系型数据库缺点的唯一替代方案。现在市面上还有很多非关系型数据库的产品,这些产品都可以叫做 NoSQL。NoSQL 一词最早于上世纪 90 年代末提出,可以解释为“非 SQL” 或“不仅是 SQL”,具体解释要…

初识HOOK框架frida

hook是什么 hook框架是一种技术,用于在运行时拦截和修改应用程序的行为,通过hook,可以劫持应用程序的方法调用、修改参数、篡改返回值等,以达到对应用程序的修改、增强或调试的目的。 常见的hook框架有哪些 Xposed Framework&am…

固态浸压计

Solid State Dip Meter(固态浸没仪/固态浸压计) 是真空管栅极浸入式仪表的固态半导体版本。它是一种用于测量 LC 电路谐振频率的仪器。LC 电路是由电感 (L) 和电容 (C) 组成的电路。当电感的感抗与电容的容抗相互抵消时,这些元件可以谐振于特定频率。 固态浸入式仪…

matlab中Signal Editor定义梯形信号输出矩形信号

matlab中Signal Editor定义梯形信号输出矩形信号,可以通过如下勾选差值数据实现梯形信号输出。

MySQL数据库介绍与部署

背景 MySQL 是一个开源的关系型数据库管理系统(RDBMS),最初由瑞典公司 MySQL AB 开发,后被 Oracle 公司收购。MySQL 使用标准 SQL 进行查询和管理数据,并支持多种操作系统。它是最流行的开源数据库之一,被…

金属表面缺陷检测设备通常采用计算机视觉技术和机器学习算法

金属表面缺陷检测是在金属制造过程中非常重要的质量控制步骤。它涉及检测金属表面可能存在的各种缺陷,如裂纹、气泡、凹坑、氧化、斑点等。这些缺陷可能会影响金属制品的性能和质量,因此需要及早发现并进行处理。 目前,金属表面缺陷检测通常采…

C++:部分题目

1. 封装、继承、多态 封装:将所需的数据成员,以及对数据的操作方法(成员函数),绑定在一起成为类(类型),定义该类型的对象时,成员被自动隐藏在对象内部。通过封装可以限定…

模拟算法总述

模拟 1.模拟算法介绍 模拟算法通过模拟实际情况来解决问题,一般容易理解但是实现起来比较复杂,有很多需要注意的细节,或者是一些所谓很”麻烦”的东西。 模拟题一般不涉及太难的算法,一般就是由较多的简单但是不好处理的部分组成…

.net使用excel的cells对象没有value方法——学习.net的Excel工作表问题

$exception {"Public member Value on type Range not found."} System.MissingMemberException 代码准备运行问题解决1. 下载别的版本的.net框架2. 安装3. 运行 代码 Imports Excel Microsoft.office.Interop.Excel Public Class Form1Private Sub Button1_Click(…

Adams Car——Adams car与Simulink联合仿真

1.修改悬架阻尼、刚度 ①先找到车辆悬架阻尼和刚度文件,这里以阻尼显示为例 ②修改阻尼曲线 找到对应车的文件 ③修改完后进行替换,刚度修改同理 2.转动惯量与车的质量修改

SQL server服务连接失败,通过端口1433连接到主机 localhost的 TCP/IP 连接失败

SQL server服务连接失败,通过端口1433连接到主机 localhost的 TCP/IP 连接失败 出现这个错误的时候,首先确保sql的服务正常启动 通常来说正常安装的SQL server之后,会自带一个软件 打开:SQL server配置管理器 确认一下红框内的…

单片机--数电(2)

组合逻辑电路 根基题目要求设计逻辑电路 组合逻辑电路 由一些逻辑门电路搭建,为实现某些功能的电路 特点 在任意时刻输出只取决于该时刻的输入,与电路原来的状态无关 根据图分析组合逻辑的方法 可以使用multisim的逻辑转换仪 1组合逻辑电路图 2…

C语言——自定义类型——结构体(从零到一的跨越)

目录 前言 1.什么是结构体 2.结构体类型的声明 2.1结构体的声明 2.2结构体的创建和初始化 2.3结构成员访问操作符 2.3.1结构体成员直接访问 2.3.2结构体成员的间接访问 2.4结构体变量的重命名 2.5结构体的特殊声明 2.6结构的自引用 3.结构体内存对齐 3.1对齐规则 3…

保护王国的钥匙:探索特权访问管理 (PAM) 的深度

在零信任架构的范例中,特权访问管理(PAM)正在成为网络安全策略的关键组成部分,旨在控制和监控组织内的特权访问。本文深入探讨了 PAM 在现代网络安全中的关键作用,探讨了其原理、实施策略以及特权访问的演变格局。 什么…

3.20作业

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

机器学习_聚类(Clustering)

文章目录 简介K-均值算法(K_Means) 简介 你经常跟哪些人联系,而这些人又经常给哪些人发邮件,由此找到关系密切的人群。因此,这可能需要另一个聚类算法,你希望用它发现社交网络中关系密切的朋友。 K-均值算法(K_Means) K-均值是…

Cesium新版修改源码后,编译不生效问题

最新版本的cesium源码在编译时默认使用node_models下的cesium/engine,从而导致咱们修改项目中的源码并不会生效 解决方式 : 进入到实际的源码位置,执行npm link 在返回到源码的根目录下执行 npm link ./packages/engine