Bito插件

news2024/11/24 2:52:02

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

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.coloradmin.cn/o/1531833.html

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

相关文章

SQLiteC/C++接口详细介绍sqlite3_stmt类(五)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(四)- 下一篇: 无 12. sqlite3_bind_text16函数 sqlite3_bind_text16函数用于将UTF-16编码的文本数据(字符串)绑定…

推荐一款管理hosts文件的利器

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

windows下不同python版本切换

一、简介 有时候在windows环境下会安装很多个不同的Python版本,但是在运行一些特定环境时,又需要特定的python版本。于是就需要切换Python版本。 二、实操 右键“我的电脑”-》属性 右侧“高级系统设置” “高级”-》“环境变量” 双击“Path” 可以看到…

计算机视觉之三维重建(2)---摄像机标定

文章目录 一、回顾线代1.1 线性方程组的解1.2 齐次线性方程组的解 二、透镜摄像机的标定2.1 标定过程2.2 提取摄像机参数2.3 参数总结 三、径向畸变的摄像机标定3.1 建模3.2 求解 四、变换4.1 2D平面上的欧式变换4.2 2D平面上的相似变换和仿射变换4.3 2D平面上的透射变换4.4 3D…

深入浅出前端本地储存(1)

引言 2021 年,如果你的前端应用,需要在浏览器上保存数据,有三个主流方案: CookieWeb Storage (LocalStorage)IndexedDB 这些方案就是如今应用最广、浏览器兼容性最高的三种前端储存方案 今天这篇文章就聊一聊这三种方案的历史…

全球首例AI软件工程师Devin:Cognition AI引领智能编程新纪元

近日,初创企业Cognition AI震撼发布了全球首位AI软件工程师——Devin,这一开创性的突破标志着人工智能在编程与软件开发领域的应用迈上了全新的台阶。Devin以其卓越的计算机推理与规划能力,正在重新定义我们对软件工程实践的理解。 Devin&am…

软件设计师:03 - 数据库系统

一、数据模型的分类 1.1、概念数据模型 1.2、结构数据模型 1.3 真题 二、三级模式 概念模式对应的是基本表,概念模式也称为模式 外模式对应的是视图,也称用户模式或者子模式 内模式对应的是数据库里面的存储文件,也称存储模式 真题 三、两级…

漏洞发现-漏扫项目篇Poc开发Yaml语法反链判断不回显检测Yaml生成

知识点 1、Xray&Afrog-Poc开发-环境配置&编写流程 2、Xray-Poc开发-数据回显&RCE不回显&实验室 3、Afrog-Poc开发-数据回显&RCE不回显&JDNI注入 章节点: 漏洞发现-Web&框架组件&中间件&APP&小程序&系统 扫描项目-综合…

三连杆滑块机构运动学仿真 | 【Matlab源码+理论公式文本】|曲柄滑块 | 曲柄连杆 | 机械连杆

【程序简介】💻🔍 本程序通过matlab实现了三连杆滑块机构的运动学仿真编程,动态展现了三连杆机构的运动动画,同时给出了角位移、角速度和角加速度的时程曲线,除了程序本身,还提供了机构运动学公式推导文档…

防火墙互联技术

1.防火墙基础配置 2.配置防火墙远程管理 3.配置防火墙管理员角色 4.配置防火墙系统时钟 抓包

自动化测试报告生成(Allure)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 之前尝试使用过testNG自带的测试报告、优化过reportNG的测试报告…

备战蓝桥杯D33 - 真题 - 松散子序列

题目描述 解题思路 ps:思路是我看了大佬的题解后自己的理解,自己给自己捋清楚思路。 1.设置输入,将字符串输入 2.因为输入的是字符,但要找出字符的最大价值,所以先将字符串转化成对应的数值。 这时候就要用到ord函…

基于SSM的宿舍管理系统的设计与实现(JSP,MySQL)

摘 要 随着社会发展、信息技术的普及,人们日常管理工作也发生了巨大的变化。信息化技术之渗透各行业的方方面面。学生宿舍管理作为校园管理工作的重要一环,不仅关系到学生自身的确切利益,同时也是对校园管理工作重大考验。近来年由于在校学生…

YOLOv9改进策略:卷积魔改 | 分布移位卷积(DSConv),提高卷积层的内存效率和速度

💡💡💡本文改进内容: YOLOv9如何魔改卷积进一步提升检测精度?提出了一种卷积的变体,称为DSConv(分布偏移卷积),其可以容易地替换进标准神经网络体系结构并且实现较低的存…

MISC:常见编码

一、字符编码 1.ASCII码 使用指定7位或8位二进制数组合表示128-256种可能。 常⻅考点:解题过程中给出十进制或十六进制的连续数值。 进制转换工具: ASCII text,Hex,Binary,Decimal,Base64 converter (rapidtables.com) 2.Base64编码 ASCII编码以8个比特…

RISC-V架构的三种特权模式如何切换

1、RISC-V的三种特权模式 特权模式功能描述机器模式(M-mode)具有最高特权等级,具有访问所有资源的权限,通常运行固件和内核用户模式(U-mode)权限要比M模式低,通常是用来运行操作系统内核管理员…

sqlserver列出表的所有字段名

1、纵向列出所有字段 SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME tablename;2、横向列车所有字段,以‘,’分隔 SELECT STUFF((SELECT , column_nameFROM information_schema.columnsWHERE table_name tablenameFOR XM…

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

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

【C语言】—— 指针三 : 参透数组传参的本质

【C语言】—— 指针三 : 参透数组传参的本质 一、数组名的理解二、使用指针访问数组2.1、指针访问数组2.2、[ ] 的深入理解2.3、数组与指针的区别 三、一维数组的传参本质四、数组指针变量4.1、数组指针变量是什么4.2、 数组指针的初始化 五、二维数组传参的本质 一…

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

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