此文档只作用于指导性工作,更多资料请自行探索。
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
待继续挖掘。