原地起飞!智能代码补全,让编程更高效!-TabNine

2024-06-07 11:03:12 10点赞 102收藏 0评论

在编程的世界里,每一行代码都是智慧的结晶,而编写代码的过程则是对智慧的挑战。为了提高编程效率,开发者们不断寻求新的工具和技术支持。近年来,随着人工智能技术的飞速发展,AI自动补全插件应运而生,其中TabNine便是其中的佼佼者。

TabNine是一款基于深度学习的IDE AI自动补全插件,它不同于传统的自动补全工具,而是通过深度学习技术,根据已有的代码片段预测并补全后续的代码。这种智能化的补全方式,极大地提高了编程效率,减少了程序员在编写代码时的思考时间。

TabNine的特点在于其强大的支持能力和易用性。首先,它支持几乎所有主流的IDE,包括VSCode、IntelliJ IDEA、Sublime Text、Vim、Atom和Emacs等,这意味着无论你喜欢使用哪种IDE,都可以轻松集成TabNine。其次,TabNine理论上支持几乎所有的编程语言,无论你是Python、Java、JavaScript、C++还是其他语言的开发者,都可以从中受益。

在使用上,TabNine也极具便利性。它采用了开箱即用的设计理念,无需进行繁琐的配置,只需简单的安装步骤,即可在你的IDE中启用TabNine。安装完成后,当你在编写代码时,TabNine会根据上下文信息自动提供补全建议,你只需选择合适的补全选项即可。

原地起飞!智能代码补全,让编程更高效!-TabNine

TabNine简介

Deep TabNine 是由滑铁卢大学的计算机科学本科生 Jacob Jackson 创建的编码自动完成器,程序员可以将它作为附件安装在他们选择的编辑器中,程序员写代码时,这个程序会给出下一行代码建议,每次提供一小段代码。你可以将它理解为 Gmail 的智能撰写功能用到了代码上。

据悉,Jacob 于 2018 年 2 月开始研究该软件的原始版本,在 11 月发布之前它叫做 TabNine。本月早些时候,他发布了一个更新版本,该版本使用由研究实验室 OpenAI 设计的深度学习文本生成算法模型 GPT-2 来改善能力。该模型使用 Transformer 架构,旨在解决自然语言处理中的问题,Deep TabNine 用这个架构来理解代码中的英语。例如,模型可以使用 if / else 语句来进行否定。在训练时,模型的目标是根据前面给定的 token 来预测下一个 token。

Deep TabNine 使用 GitHub 的近 200 万个文件进行了训练,它具有预先存在的知识,而不是仅仅从用户当前的项目中学习。此外,这个模型还引用以自然语言编写的文档来推断函数名称、参数和返回类型。它还能利用传统工具难以发现的小线索。例如,它可以理解 app.get_user() 的返回类型被假定为具有设置器方法的对象,且 app.get_users()的返回类型被假定为列表。

TabNine是一款比较年轻的开发工具,刚发布的时候还是比较惊艳的,那个时候OpenAI刚开源GPT-2模型不久,TabNine基于GPT-2模型在海量代码数据上进行调优,打造出了一款针对代码的深度学习引擎,它能智能识别代码的上文信息,提供长序列的代码补全结果。目前,已经被Codota公司收购,并主推该工具,宣称支持所有主流的开发语言。

原地起飞!智能代码补全,让编程更高效!-TabNine

TabNine的优缺点

1.优点

代码提示功能强大

支持超级多的语言

支持主流的编辑器和IDE

能通过机器学习,记忆你经常写的代码,进行超级全面的提示(中文和符号都可以提示)

最可怕的时候,可以连续提示一整行

智能代码补全:无论你是在编写新的代码还是重构旧项目,TabNine都会根据你正在编写的上下文提供实时的补全建议,减少手动输入的时间。

跨文件支持:它不仅考虑当前文件的内容,还能记住你的项目结构和已打开的其他文件,以给出更为准确的建议。

插件兼容性:TabNine作为一个独立的插件,可以在各种流行IDE中工作,无需改变你的开发环境。

节省时间:对于常见或重复的编码任务,TabNine能显著提高生产力,让开发者有更多的时间专注于创新和解决问题。

2.缺点

代码提示的是很全,写的也很快,但是一定要注意提示的有没有问题,要不然该bug的时间会超级长,得不偿失了

电脑的配置的要求很高;电脑的内存至少要8g,因为这个插件会占1g多,而且还挺耗CPU

原地起飞!智能代码补全,让编程更高效!-TabNine原地起飞!智能代码补全,让编程更高效!-TabNine

使用体验

优势

在针对Java语言的体验中,TabNine能对很多情况都生成较长的代码序列,不仅支持代码符号,也支持字符串、注释、Javadoc等内容的自动提示,在这方面还是比较方便的,但是通常自动提示的效果不是很好,毕竟这类信息的生成是需要理解代码的,而TabNine只能根据上文学习的模式进行生成,没有真正理解到代码的逻辑。除了Java文件,Java工程相关的文件如Yaml、properties等配置文件,它也能根据一定的模式进行自动提示。

但是TabNine经常会推荐生成了一半的补全结果,也会经常推荐出本工程内不存在的API,最让人不能接受的地方是如果是使用离线模式,内存占用量非常高,cpu占用有时候也会比较高。下面我们来看几个示例(以下示例基于TabNine Pro版本):

1)TabNine提供的代码补全经常会出现不完整代码片段,比如下图中的 HSSFWork。

原地起飞!智能代码补全,让编程更高效!-TabNine

总结

TabNine是一个为现代开发者量身打造的代码助手,它以先进的AI技术简化了编码过程,提高了工作效率。如果你是一名程序员,无论是新手还是资深开发者,都值得尝试一下TabNine,让它成为你编程旅程中的得力伙伴。

开源地址:https://gitcode.com/codota/tabnine-intellij

原地起飞!智能代码补全,让编程更高效!-TabNine
展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

镜像人生

本号分享的软件等收集自互联网,若侵权或违规,请联系删除。 软件仅供学习使用,禁止商用,请购买正版软件。 软件使用造成的一切风险由用户自行承担,本号 不负任何责任。 涉及商业机密或者个人隐私的请警慎使用

发文累计被7012人收藏

关注 打赏
作者其他文章
最新文章 热门文章
102
扫一下,分享更方便,购买更轻松