提效神器Bito AI装置体会

跟着ChatGPT的爆火,大量优异的AI东西层出不穷,作为一名软件开发人员,对这些东西不应该仅仅是停留在尝试阶段,而是要不断的探索,将这些优异东西娴熟的应用到日常开发中,进步咱们的开发功率,Bito AI作为一款AI帮手,官方介绍10x faster with ChatGPT 就十分吸引人,该东西支撑IDEA、 VSCODE、 CLI、浏览器插件等集成, 而且现在是不需求魔法就能访问,且完全免费,可谓神器

官网

bito.ai/

点击Get Bito for free咱们可以看到该帮手支撑idea全家桶、vscode、 浏览器插件、以及CLI,接下来就来装置和运用

提效神器bito AI体验

vs code装置运用

直接在vscode扩展程序中输入bito即可进行装置

提效神器bito AI体验

进入代码, 鼠标右键可以看到bito AI,初次运用需求登录,输入邮箱即可

提效神器bito AI体验

提效神器bito AI体验

输入邮箱中收到的验证码即可完成登录

提效神器bito AI体验

登录成功后即可进行对话或者鼠标右键开端运用了, 比方输入【vue中如何调用api接口】

提效神器bito AI体验

提效神器bito AI体验

mac CLI装置运用

github.com/gitbito/CLI

装置

下载文件CLI/version-3.0 at main gitbito/CLI GitHub

提效神器bito AI体验

将文件放到自己喜欢的目录, 如/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开端等候呼应(全体感受仍是有点慢)

提效神器bito AI体验

IDEA装置运用

装置

打开plugins直接查找bito装置即可(据说低版别的查找不到,2021.2.4版别装置是OK的)

提效神器bito AI体验

装置成功后可以看到bito的按钮

提效神器bito AI体验

初次运用需求登录,输入邮箱登陆

提效神器bito AI体验

将邮箱收到的验证码输入后点击sign in即可

提效神器bito AI体验

登录成功后会进入到谈天界面, 就可以开端玩起来了

提效神器bito AI体验

这里可以看到一个方便按钮Shortcuts, 点击可以看到咱们比较关注的几个已有功用, Explain Code(代码剖析)、 Generat Comment(生成注释)、Generate Unit Tests(生成单元测验)等,接下来就是体会这些功用了

提效神器bito AI体验

体会

方便方法

对话框输入【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.,意思是现在还不支撑自动写单测,该功用已经在开发中,将会很快完成后并通知到用户,仍是蛮值得等待的

提效神器bito AI体验

代码剖析

直接对话框输入【剖析AbstractFillTask类】,可以看到给出了中文的剖析

提效神器bito AI体验

对话框中输入【解说FutureAdapter类中的getFuture办法】,阅览dubbo中的源码,给出具体的解说阐明

提效神器bito AI体验

增加注释

在对话框中输入【给JAVA类WarmupService增加中文注释】, bito给出了具体的类阐明,而且自动对代码做了优化和运用阐明

提效神器bito AI体验
提效神器bito AI体验

代码优化

在对话框中输入【优化DefaultSwitchEngine类中的filterCustomGiveCaptchaType办法】,bito给出了优化后的代码,而且给出了优化阐明, 全体看优化后可读性确实更友爱,但是具体优化后的代码仍是需求结合上下文做下review

提效神器bito AI体验

提效神器bito AI体验

单元测验

在对话框中输入【为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体验

总结

Bito AI全体是一块十分优异的AI帮手,从插件支撑、功用支撑、呼应速度上来看都十分优异,十分值得下手。通过不断的探索,相信每个开发者都会堆集许多和AI交流的小技巧,娴熟运用这些技巧将会带来意想不到的收成,赶忙装置运用吧。最终汇总一下Bito AI支撑的功用

  • 代码优化

针对代码做重构,进步代码可读性,同时让代码设计上愈加合理,有助于提升咱们的编码能力

  • 代码解说

剖析项目中前史代码、其他同事写的代码逻辑、阅览源码、阅览开源项目等等,这个功用十分好用

  • 增加注释

除了自己的代码条件完整注释外,也可以对前史代码进行注释,加深代码阅览了解

  • 单元测验

极大的进步写测验用例的功率,有用的协助咱们进步单测覆盖率,十分有助于咱们降本增效,将对咱们的开发代码十分大的协助

  • 检测代码规范

查看代码块是否契合规范,例如是否初始化,有没有判空

代码的反常是否有处理等等