提效神器Bito AI装置体会
跟着ChatGPT的爆火,大量优异的AI东西层出不穷,作为一名软件开发人员,对这些东西不应该仅仅是停留在尝试阶段,而是要不断的探索,将这些优异东西娴熟的应用到日常开发中,进步咱们的开发功率,Bito AI作为一款AI帮手,官方介绍10x faster with ChatGPT 就十分吸引人,该东西支撑IDEA、 VSCODE、 CLI、浏览器插件等集成, 而且现在是不需求魔法就能访问,且完全免费,可谓神器
官网
bito.ai/
点击Get Bito for free咱们可以看到该帮手支撑idea全家桶、vscode、 浏览器插件、以及CLI,接下来就来装置和运用
vs code装置运用
直接在vscode扩展程序中输入bito即可进行装置
进入代码, 鼠标右键可以看到bito AI,初次运用需求登录,输入邮箱即可
输入邮箱中收到的验证码即可完成登录
登录成功后即可进行对话或者鼠标右键开端运用了, 比方输入【vue中如何调用api接口】
mac CLI装置运用
github.com/gitbito/CLI
装置
下载文件CLI/version-3.0 at main gitbito/CLI GitHub
将文件放到自己喜欢的目录, 如/Users/xxx/ai
履行mv bito-- bito
增加权限chmod +x ./bito
拷贝文件到/usr/local/bin目录 sudo cp ./bito /usr/local/bin
增加到环境变量PATH=$PATH:/usr/local/bin
运用source指令使其收效(运用哪个文件依据自身配置决议) source ~/.bash_profile
体会
输入./bito,初次进入需求输入邮箱
Please set your configurations
# Please enter valid email
输入有用邮箱后会收到一个验证码, 将验证码输入到光标处
# Please enter verification code sent to xxxx@gmail.com
# Please check your junk, spam, and promotions folders if you don't see it.
# We've sent a six-digit confirmation code to xxxx@gmail.com. The code expires soon.
成功输入验证码后可以看到如下提示语
# bito
# bito CLI version 3.0.
# To end input please press Ctrl+D. To quit please type quit and Ctrl+D.
输入测验语【写出李白的将进酒并给出解读】后按Ctrl+D开端等候呼应(全体感受仍是有点慢)
IDEA装置运用
装置
打开plugins直接查找bito装置即可(据说低版别的查找不到,2021.2.4版别装置是OK的)
装置成功后可以看到bito的按钮
初次运用需求登录,输入邮箱登陆
将邮箱收到的验证码输入后点击sign in即可
登录成功后会进入到谈天界面, 就可以开端玩起来了
这里可以看到一个方便按钮Shortcuts, 点击可以看到咱们比较关注的几个已有功用, Explain Code(代码剖析)、 Generat Comment(生成注释)、Generate Unit Tests(生成单元测验)等,接下来就是体会这些功用了
体会
方便方法
对话框输入【AbstractFillTask】 点击explain code得到呼应, 发现默许给出的是英文解读,这显然不满足国内程序开发的需求,所以后续的体会都不是直接根据方便方法体会。弥补阐明最终一个方便方法”Generate Unit Tests”现在并不支撑,点击按钮后给出了Thanks for trying our Test Case shortcut. We have added you to the waitlist for this feature, and will notify you as soon as it ships.,意思是现在还不支撑自动写单测,该功用已经在开发中,将会很快完成后并通知到用户,仍是蛮值得等待的
代码剖析
直接对话框输入【剖析AbstractFillTask类】,可以看到给出了中文的剖析
对话框中输入【解说FutureAdapter类中的getFuture办法】,阅览dubbo中的源码,给出具体的解说阐明
增加注释
在对话框中输入【给JAVA类WarmupService增加中文注释】, bito给出了具体的类阐明,而且自动对代码做了优化和运用阐明
代码优化
在对话框中输入【优化DefaultSwitchEngine类中的filterCustomGiveCaptchaType办法】,bito给出了优化后的代码,而且给出了优化阐明, 全体看优化后可读性确实更友爱,但是具体优化后的代码仍是需求结合上下文做下review
单元测验
在对话框中输入【为DefaultSwitchEngine类中的filterCustomGiveCaptchaType办法弥补单元测验,需求达到90%的覆盖率】,可以看到bito输出了具体的测验用例,而且对一些依赖类做了mock处理,还给出了测验用例的具体阐明,仍是适当的智能,这将极大的节约开发写测验用例的时间,而且可以确保测验办法对逻辑的覆盖率
class DefaultSwitchEngineTest {
@Mock
private CaptchaTypeProvider provider1;
@Mock
private CaptchaTypeProvider provider2;
@InjectMocks
private DefaultSwitchEngine engine;
private SwitchEngineOptions options;
@BeforeEach
void setUp() {
MockitoAnnotations.initMocks(this);
Map<CaptchaType, CaptchaTypeProvider> providers = new HashMap<>();
providers.put(CaptchaType.GIF, provider1);
providers.put(CaptchaType.PNG, provider2);
engine = new DefaultSwitchEngine(providers, Arrays.asList(CaptchaType.GIF, CaptchaType.PNG));
options = new SwitchEngineOptions.Builder().build();
}
@Test
void testFilterCustomGiveCaptchaTypeWithSpecifiedType() {
when(provider1.getScore(options)).thenReturn(50);
when(provider2.getScore(options)).thenReturn(70);
options.setSpecifiedCaptchaType(CaptchaType.GIF);
CaptchaType result = engine.filterCustomGiveCaptchaType(options);
assertEquals(CaptchaType.GIF, result);
}
@Test
void testFilterCustomGiveCaptchaTypeWithUnsupportedType() {
options.setSpecifiedCaptchaType(CaptchaType.JPEG);
assertThrows(IllegalArgumentException.class, () -> engine.filterCustomGiveCaptchaType(options));
}
@Test
void testFilterCustomGiveCaptchaTypeWithNoProvidersAvailable() {
engine = new DefaultSwitchEngine(Collections.emptyMap(), Arrays.asList(CaptchaType.GIF, CaptchaType.PNG));
assertThrows(IllegalArgumentException.class, () -> engine.filterCustomGiveCaptchaType(options));
}
@Test
void testFilterCustomGiveCaptchaType() {
when(provider1.getScore(options)).thenReturn(50);
when(provider2.getScore(options)).thenReturn(70);
CaptchaType result = engine.filterCustomGiveCaptchaType(options);
assertEquals(CaptchaType.PNG, result);
}
}
此单元测验代码覆盖了以下状况:
1. 当指定了验证码类型而且指定类型被支撑时,办法回来指定类型。
2. 当指定了不支撑的验证码类型时,办法抛出IllegalArgumentException反常。
3. 当没有可用的验证码类型供挑选时,办法抛出IllegalArgumentException反常。
4. 当有多个验证码类型供挑选时,办法按照每个类型的分数挑选最优的类型。
当然 ,bito写出来的单测并非一定是完全能立即运用的,需求通过合理的对话来表达开发的需求,比方输入【上述代码中getCaptchaType办法的参数GetCaptcha是一个JAVA目标,回来值是CaptchaSmartSwitchResult目标,用mock any()的方法处理, 请做出修正】最终得到了我想要的测验代码,测验运行成功。
总结
Bito AI全体是一块十分优异的AI帮手,从插件支撑、功用支撑、呼应速度上来看都十分优异,十分值得下手。通过不断的探索,相信每个开发者都会堆集许多和AI交流的小技巧,娴熟运用这些技巧将会带来意想不到的收成,赶忙装置运用吧。最终汇总一下Bito AI支撑的功用
- 代码优化
针对代码做重构,进步代码可读性,同时让代码设计上愈加合理,有助于提升咱们的编码能力
- 代码解说
剖析项目中前史代码、其他同事写的代码逻辑、阅览源码、阅览开源项目等等,这个功用十分好用
- 增加注释
除了自己的代码条件完整注释外,也可以对前史代码进行注释,加深代码阅览了解
- 单元测验
极大的进步写测验用例的功率,有用的协助咱们进步单测覆盖率,十分有助于咱们降本增效,将对咱们的开发代码十分大的协助
- 检测代码规范
查看代码块是否契合规范,例如是否初始化,有没有判空
- 查看代码的安全性
代码的反常是否有处理等等























