当前位置: 首页 > 科技观察

简化软件开发的五款机器学习工具

时间:2023-03-20 17:03:41 科技观察

五种简化软件开发学习的机器学习工具等等。但机器学习正以另一种方式影响软件开发:通过使用机器学习技术的新开发工具,使编程更容易、更高效。本文介绍了五个项目:三个商业项目和两个实验项目,它们使开发人员在开发过程中可以使用机器学习。KiteKite是一种代码完成工具,适用于大多数主要代码编辑器,它使用机器学习在您键入时填充代码。Kite使用的机器学习模型是通过获取GitHub上的公开可用代码、从中派生抽象语法树并将其用作模型的基础而创建的。根据Kite的说法,这可以根据代码的上下文和意图(而不仅仅是文本)实现自动建议和自动完成。目前,Kite仅供Python开发人员使用,但Go支持正在开发中。虽然Kite最初仅适用于Windows和MacOS用户,但它现在也支持Linux。2017年,Kite因不当处理用户数据和修改Atom的autocomplete-python包而在开源社区引起关注。该公司已经解决了这两个问题,声称Kite不再将用户代码发送回云服务器,而是在本地执行所有处理,明确承认autocomplete-python包是Kite提倡的。链接:https://kite.com/CodotaCodota与Kite非常相似。它使用机器学习模型,在Java和Kotlin代码上训练,并在您键入时自动完成这些语言的代码。与Kite一样,Codota使用代码的语法树,而不仅仅是文本,作为构建模型的数据。与改进后的Kite不同,Codota使用基于云的服务来生成和提供预测。然而,根据该服务的文档,Codota不会将用户代码发送到Codota服务器,只会发送“当前正在编辑的文件中的少量上下文信息,以便我们可以根据当前本地范围进行预测。”Codota适用于Windows、macOS和Linux,但编辑器支持仅限于IntelliJ、AndroidStudio和Eclipse(Luna或更高版本)。鉴于它专注于Java和Kotlin语言,这是有道理的。该公司特别指出,对其他语言的支持正在开发中,JavaScript位居榜首。(现在有对JetBrainsJavaScriptIDE:WebStorm的测试版支持。)免费版本的Codota使用从免费代码创建的预测。企业版可以使用私有代码库进行训练。链接:https://www.codota.com/DeepCodeDeepCode可以在AI的引导下自动审查代码,检测潜在的安全漏洞。与Kite和Codota一样,DeepCode分析公共存储库中可用的代码以获得常见模式。但DeepCode使用这些模式来识别安全漏洞。DeepCode专注于“污点分析”,确定在用户输入到达任何安全关键点之前如何处理它。直接从用户输入到SQL查询中的数据如果未被验证为可以安全传输,则被视为“受污染”,从而引发警报。DeepCode声称它可以标记的严重错误包括Web应用程序中的常见安全问题:跨站点脚本、SQL注入攻击、远程代码执行和路径遍历攻击。DeepCode的分析可用于GitHub和Bitbucket存储库,并且对于开源项目或最多30名开发人员的私人项目无需任何费用。DeepCode也可用于扫描本地代码托管(例如GitHubEnterprise),可根据要求提供价目表。链接:https://www.deepcode.ai/MicrosoftPROSEPROSE的全称是“程序综合使用实例”。Microsoft的这个项目是一个SDK,用于从示例输入和输出生成代码。因此,PROSE是一个可用于构建预测编码工具的工具包,而无需本身是预测编码工具。潜在的PROSE应用领域包括通过示例转换文本(一种实现是Microsoft在Excel中的“FlashFill”功能)、从文本文件中提取数据(例如日志分析)和预测文件操作(例如将文本通过示例拆分为多列).链接:https://microsoft.github.io/prose/Pix2codePix2code的想法听起来很科幻。为Pix2code提供GUI的屏幕截图,它会生成呈现该GUI的代码。Pix2code使用深度学习模型,使用软件提供的数据集进行训练,以生成AndroidXML、iOSStoryboard和HTML/CSS等格式的GUI。Pix2code是一个实验性研究项目(“仅出于教育目的共享”),因此使用它完成的任何工作都需要使用该项目作为进一步开发的基础。链接:https://github.com/tonybeltramelli/pix2code原标题:5个简化软件开发的机器学习工具,作者:SerdarYegulalp