推荐一款效率神器,让AI为编程助力

关于Bito

自从ChatGPT引领的这一波人工智能热度以来,大语言模型的众多应用已经开始落地。对于程序员来说,基于大语言模型(LLM)训练出来的GPT类应用已经可以自动生成一些代码。在未来人工智能是否会替代程序员的工作一直是大家热议的话题。目前普遍得到的共识是,当前以ChatGPT为代表的大语言模型在短时间内无法完全取代程序员的工作,但作为一名程序员,还是要主动拥抱人工智能带来的变革。如何应用AI工具,为程序的设计和开发赋能。

最近用到的Bito就是这样一款帮助程序员赋能的工具,按照其官方的说法,它是一种功能齐全的瑞士军刀,可以使用与ChatGPT相同的模型,将开发人员的生产力提高10倍,每天节省一小时!

Bito AI使得编写代码、理解语法、编写测试用例、解释代码、注释代码、检查安全性以及解释高级概念变得非常容易。Bito基于数十亿行代码和数百万份文档的训练,我们可以通过Bito们完成许多任务,而无需上网搜索或浪费时间在繁琐的事情上。

如何安装Bito

Bito安装起来非常简单,以JetBrain IDEs(Idea、DataGrip和Pycharm为例),直接在插件搜索中安装即可。
image.png

插件安装完成之后需要注册一个账号,这步直接找一个邮箱注册即可,目前还处在免费的状态。
image.png

验证完成即可开始体验Bito的功能了。

基本功能

这里以pycharm为例介绍Bito的基本功能。

编写代码

Bito可以帮助我们快速地生成代码,同时可以根据实际需要给Bito生成的代码提要求,如:

写一个快排算法,函数名为quick_sort,输入输出类型均为list,要求用递归实现,写上必要的代码注释

1694227811(1).png

Bito可以将生成好的代码(白色箭头所示)插入到你打开的代码框中,生成可以执行的代码。

def quick_sort(arr):
    """
    快速排序算法实现
    :param arr: 待排序的列表
    :return: 排序后的列表
    """
    if len(arr) <= 1:
        return arr
    else:
        pivot = arr[0]  # 选择第一个元素作为基准值
        less = [x for x in arr[1:] if x <= pivot]  # 小于等于基准值的子列表
        greater = [x for x in arr[1:] if x > pivot]  # 大于基准值的子列表
        return quick_sort(less) + [pivot] + quick_sort(greater)

# 示例用法
input_list = [4, 2, 8, 0, 5, 1, 9, 3, 7, 6]
sorted_list = quick_sort(input_list)
print(sorted_list)

代码解释

这个场景适用于解读别人的代码,sqlparse是一个用于解析和格式化SQL语句的Python库,我们想知道sqlparse是如何切分多个sql语句的,可以用Bito帮助我们分析代码,选中代码之后直接点击Explain Code(Alt+Shift+E)。

97a16394a1d45202c6b6cfa611f80a0.png

功能说明

以一个处理爬基金网站数据代码中json字符串的类为例,选中代码之后直接点击Explain Code(Alt+Shift+V)。

1694229668(1).png

功能说明和代码解释的区别是,前者基于每一行代码进行解释,方便开发者理解代码。功能说明则是对整个代码的功能的一个概述,方便使用者快速了解该代码实现的功能。

代码性能优化

接下来一个更加神奇的功能,Bito可以对当前的代码给出合理化建议,同时生成优化后的代码,以这个代码为例,给出的合理化建议确有可以采纳的地方,但是优化后的代码就比较一般了,和原有的代码差别并没有特别大,只是做了一些格式化的操作,这也是Bito背后的大语言模型值得改进的地方。当然

82914b32bbee7f09b9dcbe661107e0c.png

代码风格检查

相比于难度更高的性能优化,代码风格检查的效果相对要好得多,把一些不符合变量命名规范的代码做优化。同时提高代码的可读性。
34591f7891a101a42a1253e1ecc49eb.png
这里会现给出优化建议,然后直接修改原有的代码,同样地点击Insert Change可以把优化后的代码覆盖掉原有的代码,非常方便,在此之前,点击View Diff可以查看代码风格优化的部分:

2e09cd44d0dea5dec8c5dee2e312d06.png

从上述变化中,看出代码风格的检查还是起到了效果的,举几个例子:

  • 把不符合代码命名规范的Csv_output改成了output_to_csv,同时类名不符合规范,应该为CrawlerJson
  • 把含义比较模糊的变量名self.type改成了self.fund_type
  • Bito认为if data[i] == ''不够Pythonic,改成了if not data[i]

生成单测用例

以前面介绍的快排算法为例,选定代码之后,可以直接生成关于这段代码的单测用例,使用这个功能,可以大大地提高写单测的效率,从而更好地提升代码质量,针对前面介绍的快排算法实现,可以用Bito生成单测用例:

1f26f5efba88730f12cf0d2133c1757.png

生成的用例还是可以直接运行的:

import unittest

class QuickSortTestCase(unittest.TestCase):
    def test_quick_sort(self):
        # 正常情况下的测试用例
        arr = [4, 2, 7, 1, 3, 6, 5]
        expected = [1, 2, 3, 4, 5, 6, 7]
        self.assertEqual(quick_sort(arr), expected)

        # 边界情况下的测试用例
        arr = [1]
        expected = [1]
        self.assertEqual(quick_sort(arr), expected)

        # 特殊情况下的测试用例
        arr = []
        expected = []
        self.assertEqual(quick_sort(arr), expected)

        # 负面情况下的测试用例
        arr = [4, 2, 7, 1, 3, 6, 5, 'a']
        self.assertRaises(TypeError, quick_sort, arr)

if __name__ == '__main__':
    unittest.main()

单纯作为ChatGPT的客户端使用

Bito本身会依赖大语言模型,基于此,也可以作为一个ChatGPT的客户端使用,可以问除了代码之外的任何问题,包括一些技术问题,当代码开发遇到阻碍时,可以让Bito给你一些思路,当遇到报错时,也可以将错误代码贴到Bito中,让它分析错误原因,而对于一些算法/框架的原理不了解时,也可以在Bito这里得到答案。
6af524246efd59197c85d1b27e9c046.png

总结

总而言之,Bito对于程序员来说,是一个可以释放双手的神器,同时它作为一个插件,基本上支持了现在的主流IDE,使用和上手都非常的方便,更重要的一点是,它到目前为止,还是免费的。对于这样一个提高程序员效率的神器,还等什么呢,也赶快上手试一试吧。

更详细地介绍,详见Bito官网:https://docs.bito.ai/getting-started

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值