第七十七期:可自动生成代码,5款基于AI的开发工具

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

作者:Sandra Parker

如今,对机器学习潜力感兴趣的程序员都在讨论,如何使用人工智能和基于人工智能的软件开发工具构建应用程序。例如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以及最终的部署过程,仍需要有经验的开发人员。

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期科技领域知识)

歌谣带你看java面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

719. Find K-th Smallest Pair Distance

文章目录1 题目理解2 分析思路2.1 桶排序2.2 二分动态规划2.3 用堆实现3相似题目7863.1 二分3.2 堆1 题目理解 输入:一个int数组nums,一个数字k 输出:返回所有数字对中,数字对距离第k小的距离。 规则:一个数组中两两配…

MySql为查询结果添加前、后缀

SQL CONCAT函数:用于将两个字符串连接起来,形成一个单一的字符串。 举例: 查询当前系统时间 正常查询:select current_date ; 添加前缀:select CONCAT(“系统时间:”,current_date); 添加后缀:s…

关于HbSrv.exe

终于找到他了,竟然是HorBar的进程。我用的进程查看器PrvView3.5.3.8汉化版,看到的。HbSrv.exe位置在 C:\Program Files\Hotbar\bin\4.4.9.0\HbSrv.exe。他倒好像不是病毒,是以前我装的插件hotbar,卸载竟然没有卸载掉。还以为是什么…

第七十八期:2019全球程序员薪酬报告:软件开发比机器学习抢手!40岁后收入下滑

Hired发布了《2019 年度薪酬状况报告》。调查显示:仅有23%的计算机科学相关专业硕士/博士表示高学历为其带来高薪;54%从业者表示不会继续深造;40岁后薪资呈现下降、60岁基本降到30岁水平。 作者:佚名 Hired发布了《2019 年度薪酬…

动态规划再理解(53、121、174)

本次文档也是对动态规划的 再认识 。 之前写过一些文章,在处理动态规划问题的时候依据的思路是 :暴力搜索->加缓存->动态规划。相关文章有:算法八——动态规划,动态规划——0-1背包问题,动态规划——矩阵中的最短…

获得Web目录URL

获得Web目录URL string strRoot String.Format("http://{0}{1}",Request.Url.Host,Request.ApplicationPath);posted on 2004-07-02 18:05 浙林龙哥 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/huqingyu/archive/2004/07/02/20622.html

第七十九期:阿里程序员感慨:码农们过去暴富有多轻松,现在赚钱就有多辛苦

互联网的世界也是一座围城。有人挤破脑袋想要进去。而有人又觉得是被互联网的光鲜表象欺骗了忙着要出来,但最终,这些人都会离开。 作者:职场八卦 互联网的世界也是一座围城。有人挤破脑袋想要进去。而有人又觉得是被互联网的光鲜表象欺骗了…

树上倍增求LCA详解

LCA(least common ancestors)最近公共祖先 指的就是对于一棵有根树,若结点z既是x的祖先,也是y的祖先(不要告诉我你不知道什么是祖先),那么z就是结点x和y的最近公共祖先。 定义到此。 那么怎么求…

[导入]画带阴影效果的文字

画带阴影效果的文字文章来源:http://blog.csdn.net/net_lover/archive/2004/07/06/35553.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2004/07/07/816094.html

174. Dungeon Game

文章目录1题目理解2 分析1题目理解 故事背景:恶魔把公主抓走了,关在地牢里面。骑士想要把公主救出来。初始化的时候,骑士有一个健康值init。 输入:int[][] dungeon表示地牢中魔鬼布局图。dungeon[i][j]>0,恶魔会提…

第八十期:初创公司5大Java服务困局,阿里工程师如何打破?

初创公司遇到的每一个问题都可能攸关生死。创业之初更应该总结行业的常见问题,对比方案寻找最优解。 作者:常意 初创公司遇到的每一个问题都可能攸关生死。创业之初更应该总结行业的常见问题,对比方案寻找最优解。阿里巴巴地图技术专家常意在…

关于某些人和某些事的断想

关于某些人和某些事的断想<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />人的一生总会碰到这样那样的一些人和一些事&#xff0c;偶然或必然。这些人、这些事或许在我们的心里荡起过些许的波澜&#xff1b;又或许只是一闪而过&…

第八十一期:Java性能优化:35个小细节,提升你的Java代码运行效率

如果项目着眼于尽快无BUG上线&#xff0c;那么此时可以抓大放小&#xff0c;代码的细节可以不精打细磨&#xff1b;但是如果有足够的时间开发、维护代码&#xff0c;这时候就必须考虑每个可以优化的细节了&#xff0c;一个一个细小的优化点累积起来&#xff0c;对于代码的运行效…

Python数据类型与运算符号

一&#xff1a;数据类型 【1】为什么要有数据类型 &#xff08;1&#xff09;不同的数据含有不同的特征 例如&#xff1a;有文本数据 音频数据 视频数据 &#xff08;2&#xff09;不同的特征需要有不同的类型用来描述 二&#xff1a;数据类型的分类 【1】 &#xff08;1&#…

85. Maximal Rectangle

用dp计算矩形面积 文章目录1题目理解2分析2.1 暴力搜索2.2 动态规划3 相关题目1题目理解 输入&#xff1a;char[][] matrix 是一个二维数组&#xff0c;值由0和1组成。 输出&#xff1a;一个矩形的面积&#xff0c;这个矩形只包含1。 例子&#xff1a; Input: [ [“1”,“0”,…

全面搞定jive3.1.1

全面搞定jive3.1.1yippit 原创 (参与分&#xff1a;351&#xff0c;专家分&#xff1a;1740) 发表&#xff1a;2003-9-13 下午8:33 版本&#xff1a;1.0 阅读&#xff1a;8316次 近日坛子里面很多人问起这个问题&#xff0c;要么中文显示乱码出错&#xff0c;要么不能数…

spring mvc学习(6):springMVC的常见注解

1RequestMapping的位置可以在类名或者方法名之前 或者同时加在两个位置 最终的路径是两个位置路径的组合 value是默认的名称&#xff0c;可以省略&#xff0c;如果有其他参数&#xff0c;就不能省略 如下配置的访问路径&#xff1a;协议://主机&#xff1a;//端口/虚拟路径…

powershell some check

// TODO 待处理 1 # powershell 编写的某些校验2 3 function listChecks() {4 write-host 可用的校验;5 write-host CRC - 循环冗余校验;6 return -- done;7 }8 9 # 字节数组 CRC, 不知道是不是符合CRC定义 10 function crcCheck($byteArray) { 11 if ($byteAr…

801. Minimum Swaps To Make Sequences Increasing

文章目录1题目理解2 暴力搜索3 动态规划3.1第一种情况3.2第二种情况1题目理解 输入&#xff1a;两个int数组A和B&#xff0c;长度都不为0&#xff0c;并且长度相同。 输出&#xff1a;最小交换次数。 规则&#xff1a;最终想要得到两个严格递增的数组。如果原始数组不符合要求…

用属性还是字段?

用属性还是字段&#xff1f; 我觉得对于实体类(没有方法的类)&#xff0c;只要用字段就好了&#xff0c;没必弄得像下面这个样子&#xff1a; private AttributeConfig m_ColumnMap;public AttributeConfig ColumnMap{get{return m_ColumnMap;}set{m_ColumnMapvalue;}}posted …