可自动生成代码,5款基于AI的顶级开发工具

如今,对机器学习潜力感兴趣的程序员都在讨论,如何使用人工智能和基于人工智能的软件开发工具构建应用程序。例如PyTorch和TensorFlow之类的解决方案。

除此之外,机器学习技术正以另一种有趣的方式影响着编程世界,就是那些采用机器学习算法来简化开发人员工作的最新软件开发解决方案。在本文中,我们将重点介绍五个这样的工具。其中三个已经在面世,而另外两个仍处于测试阶段。如果您想知道如何利用机器学习来更快更有效地进行软件开发,可以看看这些解决方案。

Kite–面向开发人员的顶级机器学习工具

该工具主要充当代码完成者。借助机器学习,它可以轻松地实时检测您正在输入的代码,并在您键入时将其完成。往往被视为开发人员的最佳工具之一,它可与许多流行的代码编辑解决方案配合使用。

Kite使用从GitHub获取的工作模型。GitHub代码(所有人都可以使用)用于创建充当Kite模型主干的摘要。这样,该工具可以根据上下文和目的而不只是文本本身,去建议甚至自动完成代码。

Kite刚发布时只能在Mac和Windows上访问。今天,它也可以在Linux上使用。该工具的缺点是目前仅适用于Python。但是,它也可以与Go一起使用。

两年前,开源代码程序员指控Kite处理用户数据不当,并修改了一个流行的Atom插件来自动完成代码。不过,Kite团队此后解决了这两个问题。最近,Kite团队宣布该工具现在可以在用户PC内本地执行所有功能,而不是像以前那样在云中执行。

Codota

该工具非常类似于Kite,因为它使用机器学习来生成自动完成代码。它还使用了由衍生自公开代码的语法树而形成的类型。但是,它确实与Kite有一些差异。

Codota是针对Kotlin和Java语言构建的。它是基于云的解决方案,可自动生成智能预测。值得注意的是,Codota团队表示用户数据未传输到他们的服务器,当需要根据范围和上下文预测代码时,只传输来自编辑文档的有限的加密信息。

Linux,Windows和Mac设备都支持Codota。但是,编辑器模式仅适用于Android Studio,Eclipse和IntelliJ,当您查看该工具所支持的语言时,就可以理解其中的原因了。除此之外,Codota团队还提到其他编程语言的版本正在开发中,预计第一个将发布的版本是JavaScript。

该工具有一个免费版本,它仅根据可公开访问的代码生成自动建议。但是,付费用户也可以使用私人代码。

DeepCode

DeepCode也是当下比较流行的用于软件开发的机器学习工具。它的主要功能是检查代码并突出显示可能容易受到安全漏洞破坏的部分。与之前的两个工具非常相似,DeepCode从公共存储位置评估代码以识别相似之处。相比之下,该工具还利用模式来查找易受攻击的区域。

DeepCode实现了一种方法,可以在达到临界安全级别之前分析用户输入处理。因此,当任何数据在没有安全验证或清除的情况下从一个点移动到另一个点时,该工具会将其标记为受污染的,并向您发出警告。该工具可以标记的问题包括跨网站脚本、SQL注入威胁、远程代码执行以及路径遍历攻击等。

您可以在热门的存储库(例如Bitbucket甚至GitHub)上找到使用DeepCode完成的分析。这些报告是免费的,可用于开源项目或只需少量开发人员的私人作品。您还可以使用DeepCode来分析您的本地代码托管,但需要付费。

PROSE

这个框架由Microsoft创建,可以使用示例生成代码。PROSE代表“使用示例进行编程”(Program Synthesis using Examples),并且可以利用它来创建其他编程工具,而不是直接将其用作预测解决方案。开发人员可以使用PROSE的方式包括通过示例进行文本转换、通过预测进行文件操作以及从文本文件中提取数据。

Pix2code

Pix2code仍处于试验阶段,它是一种创新工具,可以将图形用户界面的屏幕截图转换为计算机代码。通过使用深度学习技术,该软件可以分析三种不同格式的GUI:iOS,Android和HTML / CSS。但是,由于该工具仍处于测试阶段,因此只能将其用于学习或用作其他软件开发的基础。

使用AI工具进行软件开发的好处

如我们所见,这些创新工具可以辅助代码完成、安全措施甚至代码生成。机器学习提供了巨大的可能性,并且可以快速有效地创建软件,因此上述工具是值得研究的。当然我们还是得说——如果没有经验丰富的软件开发人员团队,再好的工具都是无用的。当涉及到节省开发时间时,这些工具是必不可少的,但初始规划过程和测试、QA以及最终的部署过程,仍需要有经验的开发人员。

原文作者:Sandra Parker

Image placeholder
zhengjiaqiang
未设置
  47人点赞

没有讨论,发表一下自己的看法吧

推荐文章
耗时6年生成代码1.6亿行,农业银行大数据平台打造攻略!

摘要: 耗时6年,135个项目,8000页需求,累计投入11000多人月,生成的代码行1.6亿行,支持了8大业务领域,33条业务线,120多个应用场景,这就是中国农业银行大数据平台。近日,中国人民银行

我们做了大量工作,可自动化 UI 测试依旧实现不了

对开发者而言,测试的重要性不言而喻。在发布新功能前,开发者需要确保已有功能有效,这就需要将每个发布版本给到QA团队执行人工回归测试。然后,测试人员或QA团队花费数天时间执行脚本以寻找Bug。本文是S

PHP Source Plugin PHP源码自动生成插件

推荐课程:PHP开发工程师--学习猿地精品在线课 软件简介Linux基金会免费官方培训及考试申请即将截止,戳这里申请!>>>PHPSourcePlugin是一组EclipsePDT的功能,用来自动生成

2019年流行的6大顶级DevOps工具

DevOps作为对开发和运维人员都极为重要的系统,有望在2019年甚至更长时间内保持稳定增长。事实上,据IDC预测,到2022年,全球DevOps软件市场将达到80亿美元,比2017年的39亿美元有所

一文告诉你全世界最顶级的开发者都在使用什么数据库

作为一名IT行业从业者,其实从去年已经隐隐约约感觉到数据库的有变化,只是没有想到变得这么快。今年的一些事情实实在在地给了某些数据库重击,如果以前去某数据库还是喊喊,然后该用还用,今年从传统领域刮起的去

刚刚,5G商用牌照正式发布,一共四张

大数据文摘出品作者:宋欣仪、魏子敏2019年6月6日,据央视报道,工信部向中国电信、中国移动、中国联通、中国广电发放第五代移动通信业务牌照(即5G商用牌照)。此举标志中国电信产业正式进入5G时代。中国

Facebook又叒陷数据门,5亿条数据不安全存储在亚马云服务器中

大数据文摘出品编译:周素云上周Facebook用户又经历了糟糕的一周。Facebook发言人对各大主流媒体承认,用户的多组个人数据被存放在亚马逊AWS数据库中,包括数以百万计的Facebook用户的超

多次问鼎 NuerIPS、MRQA 等国际顶级比赛,百度 NLP 技术到底有多强?

人工智能技术的发展尤其是深度学习技术的成功运用,推动自然语言处理(NLP)进入了高速发展阶段。NLP目前也是应用范围最广的人工智能技术之一,已在智能搜索、智能客服、智能助手、智能推荐等方面得到了大规模

中国顶级程序员图鉴,最后一个厉害了!

程序员圈子里有很多如明星般闪耀的牛人!有中国第一代程序员求伯君有获得图灵奖的姚期智有产品取得巨大成功的张小龙商业巨子张一鸣影响开源领域的章亦春……他们的最初都是程序员机遇与热爱,把他们送到了不同的方向

Dubbo 毕业,成为 Apache 基金会顶级项目

Dubbo发展史一览2011年10月27日,阿里巴巴开源了自己服务化治理方案的核心框架Dubbo,服务治理的设计理念开始逐渐在国内软件行业中落地,并被广泛应用。自开源后,许多非阿里系公司选择使用Dub

9 个顶级的JavaScript图表库

数据可视化技术在过去十年中一直在不断改进,现在许多高级图表库可供消费者使用。在2000年代初期,图表生成主要由服务器端图像位图构成。诸如Flash和Silverlight之类的插件提供了更具交互性的图

基于 Laravel 命令行开发 API 代码生成器

1.命令行文件生成 $phpartisanmake:commandApiGenerator 2.编写代码模板 就像你看到的,我使用了php的heredoc方式,不太优雅。开始用的文件方式,但是不支持

56岁潘石屹下决心学Python,60岁程序语言之父们还在敲代码,你呢

比你成功的人,比你还努力。上周,SOHO中国董事长、地产大亨 潘石屹,56岁生日当天发布微博宣布进军编程语言Python。 紧接着第二天,又更新微博解释为何会做出此举。潘石屹给出的解释大致就是,在不断

从300万行到50万行代码,遗留系统的微服务改造

在传统企业甚至互联网企业中往往存在大量的遗留系统,这些遗留系统大多都能够正常工作,有的可能还运行着关键业务或者持有核心数据。但是,大部分遗留系统通常经常存在技术陈旧、代码复杂、难以修改等特点。笔者曾经

不到一百行代码,我们来实现一个简简简简简简简简简简版react库

goodeveningeverybody!这是一篇关于react故事的文章,这个故事主要是讲在一个夜黑风高晚上,react从一个VDOM变成真实DOM的过程。这个过程react经历了从JSX->Rea

精简代码,为网站减负的十大建议

课程推荐:web全栈开发就业班--拿到offer再缴学费--融职教育 网站快速加载,是提供良好用户体验的前提。然而,网站功能的不断增多,程序包的不断臃肿,导致网站访问时较大的下载量,最终影响了响应速度

初级,中级,高级开发者间的区别

初级,中级,高级开发人员不能仅仅通过开发年限来界定,可能存在初级开发人员比一个高级开发人员年龄大的现实。这时候只能依靠掌握的技能来做区分这三者。当然,这并不代表高级开发人员精于一切,但是,的确高级开

01.4. Go 开发工具

本节我将介绍几个开发工具,它们都具有自动化提示,自动化fmt功能。因为它们都是跨平台的,所以安装步骤之类的都是通用的。 LiteIDE LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境

程序员常用的十款开发工具推荐

工欲善其事必先利其器。对于程序员来讲,好用的开发工具可以大大提高开发效率。本文将向大家推荐程序员常用的十款开发工具,希望能帮助大家更加优雅地写出代码。这些工具分别是Arthas、ChaosBlade、

JetBrains开发工具正版授权领取

大牛新录制的全套js课程疫情免费赠送领取地址如下: 课程一:JavaScript基础全套实战教程 课程二:JavaScript的WebAPI之BOM操作 课程三:JavaScript的WebAPI之D

以梦为码,不负韶华

01有人说2019是过去十年最坏的一年也有人说2019是未来十年最好的一年不管哪种说法都注定了2019是不平凡的一年是很多人浓墨重彩的一年我也不例外我是个喜欢回望来时路的一个人在2019年的最后一天我

MySQL 表结构生成 Markdown 文档 | 工具篇

背景 在实施软件工程的时候,当要将某一版本归档时,需要汇总的文档要求还是比较高的、各类文档齐全,包括项目架构、项目安装、接口等文档,而数据库表结构说明文档亦属于其一。记得很早之前想找一个可以导出MyS

JavaScript日常代码开发代码层面的性能优化

课程推荐:java开发工程师--学习猿地精品课程 随着软件开发行业的不断发展,性能优化已经是一个不可避免的话题,本质上说任何可以提高运行效率,降低运行开销的行为,都可以看做是一种优化操作,前端开发过程

【web自动化】 自动化无人值守运行

推荐课程:web全栈开发就业班--拿到offer再缴学费--融职教育 在你根据手工测试用例完善自动化测试用例后,每个测试用例都调试通过了,说明我们已完成了对被测对象的测试用例覆盖。可是在平时的上线回归

基于Tcp协议与基于Http协议的RPC简介笔记

前言:之前对于RPC方面的学习多限于对RMI原理的学习,直到今天在看陈康贤前辈的《大型分布式网站架构-设计与实践》这本书的时候,才发现原来RPC可以基于TCP协议也可以基于HTTP协议(这里所说的TC