为了减少火狐浏览器的编码错误,Mozilla正在部署Clever- commit,这是一款由机器学习驱动的编码助手,是与游戏开发商育碧软件(Ubisoft)合作开发的。
Clever-Commit在开发人员将代码更改提交到Firefox代码库时分析代码更改。它将它们与之前看到的所有代码进行比较,看看它们是否与系统知道存在bug的代码相似。如果助理认为提交看起来可疑,它会警告开发人员。假定它的分析是正确的,这意味着可以在将错误提交到源存储库之前修复它。Clever-Commit甚至可以建议修复它发现的bug。最初,Mozilla计划在代码评审期间使用Clever-Commit,随着时间的推移,这将扩展到开发的其他阶段。它适用于Mozilla用于Firefox的所有三种语言:c++、JavaScript和Rust。
该工具是建立在育碧软件研究实验室La Forge的工作基础上的。去年,育碧软件推出了基于一项名为CLEVER的研究的委员会助理(Commit-Assistant)。该系统发现了大约60%到70%的错误提交,不过也有30%的错误阳性率。尽管这个假阳性率相当高,但是这个系统的用户仍然认为它是值得的,因为它在正确识别错误时节省了时间。
一旦clany - commit完全集成到开发过程中,Mozilla预计会取得类似的成功,在提交之前,会捕获五分之三到四的bug。这比在它们投入生产后捕获它们要便宜得多,也容易得多。
这种使用机器学习来从大型代码库进行推理的方法并不仅限于Mozilla和Ubisoft。去年,微软在Visual Studio中引入了一个名为IntelliCode的功能。IntelliCode研究了一些最流行的公共GitHub存储库(超过2000个项目,每个项目都有超过100个星星),以找出最佳编码实践。IntelliCode的最初使用是保守的;它通过根据其他项目如何使用相同的api,了解哪些建议更可能被使用,从而提供更智能的智能感知完成建议。它还被用于检测编码风格和空格的使用情况,以便能够以与项目其余部分一致的方式格式化代码。
与Clever-Commit一样,IntelliCode可用于查找bug。例如,微软已经展示了它检测不正确使用的变量,在这种情况下,当开发人员实际想要找出两个y坐标之间的差异时,他们从y坐标中减去了一个x坐标。
现在AI可以检查人类的代码,将来,也许会直接按照需求生成代码。
你是个成熟的AI了,可以自己写程序了。
AI自己修改了自己的程序,与xxxx年xx月xx日觉醒了!