• JAVA--AI编程助手【代码智能补全工具】盘点,让AI提高你的编程效率


    1. 什么是AI编程助手

    近几年,随着人工智能的迅速发展,AI在各行各业都有所应用。
    特别是近两年,面向开发者的AI开发工具也是层出不穷,如GitHub Copilot、Codota、TabNine、国内的阿里云Cosy、AIXcoder。
    这些AI编程助手增强了IDE的代码提示和自动补全功能,能极大的提高开发效率

    目前市面上主流的AI编程助手见下图【图来自于程序员编码加速器,代码智能补全工具盘点】:

    个人推荐使用阿里云Cosy的离线版本,给出的代码提示比较正确、合理,并提供强大的代码搜索功能。
    其它AI编程助手,要么收费,要么需要联网,要么使用本地版本时需要消耗较多的内存和CPU。
    在这里插入图片描述

    2. AI编程助手

    2.1. 敲代码神器Copilot

    • 2021年6月29日,微软与OpenAI共同推出了一款AI编程工具GitHub Copilot。
    • 2022年6月22日,Copilot已正式上线,定价每月 10 美元(约 66.9 元人民币)或每年 100 美元(约 669 元人民币),对学生用户和流行开源项目的维护者免费提供。
    • 你可以尝试GitHub Copilot免费60天的试用期。在免费试用之后,你需要付费订阅才能继续使用。

    GitHub Copilot uses the OpenAI Codex to suggest code and entire functions in real-time, right from your editor.
    You can use GitHub Copilot to get autocomplete-style suggestions from an AI pair programmer as you code.

    就是说使用GitHub Copilot,在编写代码时,可以实时得到内联建议【这些建议可能是代码片段或整个函数的代码】并自动完成编码。
    如果你使用JetBrains IDE,你可以直接在编辑器中查看和合并来自GitHub Copilot的建议

    使用文档参见:github copilot docs

    GitHub Copilot 是结对编程的虚拟版本。
    结对编程是一种常见的敏捷软件开发技术:即两个开发人员在同一个项目上并肩协作,轮流编写代码并检查合作伙伴的输出。

    Copilot 可以支持十几种语言,与 Python、JavaScript、TypeScript、Ruby 和 Go 等主流语言配合效果更佳。
    GitHub Copilot 还可以将注释转换为代码。只需要写一条评论,描述想要的逻辑,GitHub Copilot 就能自动“理解”并写出相应功能的代码,也能自动填充重复代码!

    2.2. 阿里云智能编码插件

    阿里云智能编码插件(Alibaba Cloud AI Coding Assistant)是一款AI编程助手,于2021年10月份发布
    提供代码智能补全和代码示例搜索能力,帮你更快更高效地写出高质量代码。
    详见参见:docs
    如何使用参见:cosy 使用文档

    提供的功能如下:

    • 代码智能补全:
      • 通过学习海量优质的开源代码,代码智能补全让你编码如行云流水般自然高效,事半功倍地完成编码工作。
      • 隐私保护:用户的隐私高于一切,代码智能补全基于离线模式,不会分享或向其它设备上传你的代码及个人信息。
      • 精准推荐:通过深度学习模型和语法分析相结合,提供更精准的代码推荐能力,让你的开发过程专注又轻松。
    • 海量代码示例搜索:
      提供代码示例搜索功能,当你需要实现不熟悉的功能时,无需跳出到浏览器中,在IDE内仅需通过简单的语言描述,即可参考海量高质量的开源代码示例,为你打造沉浸式编码体验。
    • 优质技术文档搜索:
      集成多种高质量中英文技术文档数据源,当遇到错误日志或技术难点时,在IDE内便可以轻松查阅技术文档,官方辅助伴你同行。
    • 小身材 高性能:用户的隐私高于一切,代码智能补全基于离线模式,不会分享或向其它设备上传你的代码及个人信息。

    2.3. aiXcoder

    aiXcoder是一款全新的智能编程机器人产品,它采用与程序员一起“结对编程”的方式为程序员提供服务【与github copilot类似】,从而提高程序员的编程效率。在aiXcoder的辅助下,程序将摆脱传统的编程模式,不再需要“逐字逐句”编写程序。

    根据上下文和以往代码用深度学习技术分析后,在个人编程的时候,根据个人变成习惯做推荐,把编码常用的结果前置,接着给出更长甚至补完一整行的推荐结果,极大的提高你的编程效率。

    目前提供了3.0个人版的下载
    如果您的开发环境无法访问互联网,可以使用aiXcoder的安装器离线安装

    特点如下:

    • 本地补全引擎:推理引擎完全本地运行,无须上传代码,更好地保护用户代码安全
    • 智能学习内核: 核心推理引擎基于先进的深度神经网络与模型压缩技术构建
    • 学习海量代码: 使用海量优质开源代码对智能引擎进行训练和优化

    支持功能

    • 代码智能补全
      • 远程服务模式,代码需要上传到远程服务器,速度更快一点,卡顿感会减少
      • 离线模式,会把模型下载到本地,并且会根据当前正在写的代码,动态的去下载相应的模型
      • 适配企业/私有代码,是需要收费的
    • 代码示例搜索(支持Java、C++、Python)
      • IDE插件端内部不支持,需要跳出到网页中搜索
      • 网页蛋支持代码示例搜索、自然语言搜索、相似代码搜索等
      • 适配企业/私有代码,是需要收费的
    • 度量分析
      • 编码时长、智能补全采纳率、节省时间等,普通版本不支持

    2.4. Codota

    Codota成立于2013年,在2014年下旬发布第一个Jetbrains插件版本,主要面向Java开发者。但是,目前Codota公司收购TabNine之后,已经放弃了Codota这款插件,并将老产品改名为了TabNine。效果最好的语言:Java

    2.5. TabNine

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

    支持功能

    • 代码智能补全
      • 免费版只提供较为基础的补全功能,收费的Pro版本补全效果更好
      • 远程服务模式,代码需要上传到远程服务器,但是模型更强大,本地内存占用少
      • 离线模式,能够把模型下载到用户本地,无法联网也可使用补全,但是本地内存占用高,有时候CPU会飙高
      • 针对专业版提供了适配企业/私有代码的能力,是需要收费的
    • 度量分析
      • 在IDE中提供了简单的编码效能的数据

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

    如果是使用离线模式,内存占用量非常高,cpu占用有时候也会比较高

  • 相关阅读:
    chatGLM-Windows环境安装
    HTML静态网页成品作业(HTML+CSS)——电影网首页网页设计制作(1个页面)
    设计模式-桥接模式
    koa开发热加载、ES6语法进阶篇,了解后端数据请求的过程,提升开发。
    Unix domain socket
    SystemVerilog Assertions应用指南 Chapter1.34 :SVA中的多时钟定义
    leaflet教程021:加载Stadia地图(多种形式)
    一文让你搞懂MYSQL底层原理。-内部结构、索引、锁、集群
    [附源码]java毕业设计疫苗接种管理系统
    rrrrrr
  • 原文地址:https://blog.csdn.net/penriver/article/details/125578768