设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

代码推荐哪家强?Facebook机器学习技术有话讲

2019-4-15 13:45| 发布者: joejoe0332| 查看: 475| 评论: 0|原作者: oschina|来自: oschina

摘要: 自动补全功能相信大家在写代码时用得不少,这是一个十分方便的功能,但也十分基础,它只是免去了我们输入冗长单词的操作。但如果我告诉你,有一个工具能直接给你推荐代码 —— 可以直接用的代码,你会考虑使用吗? ...

自动补全功能相信大家在写代码时用得不少,这是一个十分方便的功能,但也十分基础,它只是免去了我们输入冗长单词的操作。但如果我告诉你,有一个工具能直接给你推荐代码 —— 可以直接用的代码,你会考虑使用吗?

日前,Facebook 宣布了一个名为 Aroma 的工具,通过 Aroma,开发者可以轻松找到常见的编码模式,而无需手动浏览数十个代码片段,从而节省了日常开发工作流程的时间和精力。

Aroma 基于代码和代码之间进行搜索和推荐,辅以机器学习的加持,即便是在大型代码仓库中也有可观的效率。

说了这么多,下面就来看看 Aroma 是如何进行代码推荐的。

假如一位开发者编写了如下的代码,但同时想了解其他人是如何解码手机 bitmap 的,他就可以使用下面的代码直接进行搜索:

Bitmap bitmap = BitmapFactory.decodeStream(input);

Aroma 会返回一些推荐:

final BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
// ...
Bitmap bmp = BitmapFactory.decodeStream(is, null, options);

这段代码来自于五个实现类似功能的代码,但是去除了相关细节,以便开发者更好地参考。

此外,我们也可以把 Aroma 集成到开发环境中。

Facebook 表示除了将 Aroma 部署到自己的内部代码仓库之外,还为其它的开源项目创建了 Aroma 版本。上面的示例就是来自 GitHub 上 5000 多个开源 Android 项目的集合。


△ Aroma 工作原理

虽然这个工具提升了开发者的效率,但也引起了一些争议。有开发者认为,Aroma 似乎是强行使用机器学习解决实际上没有人有问题的例子。他认为很多人搜索习惯用法的主要用例,是希望了解如何进行高级别的重构,而不仅仅是为了获得相似的代码。

对此,你有怎样的看法?欢迎留言交流。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部