BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Eclipse Code Recommenders 2.0发布,支持Crowd

| 作者 Alex Blewitt 关注 4 他的粉丝 ,译者 马德奎 关注 0 他的粉丝 发布于 2013年11月5日. 估计阅读时间: 5 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

在10月31日的EclipseCon上,Codetrails发布了Code Recommenders 2.0。Code Recommenders项目源于这样一个想法——在开发人员使用不熟悉或者缺少详细文档的API时,为他们提供帮助Code Recommenders 1.0作为Eclipse Juno发行序列的一部分推出,它通过分析代码频率模式并将分析结果展示给开发人员来实现代码推荐功能。

第一个版本有一个嵌入式语料库,其中包含了关于核心Java库和多种Eclipse开源库的知识。举例来说,该知识库允许智能代码补全,即把当前上下文中最相关的方法推荐给开发人员。

swtTextWidget = new Text(container, SWT.NONE);
swtTextWidget.
  • setLayoutData(Object layoutData) : void – Control – 80%
  • setText(String string) : void – Control – 53%
  • addModifyListener(ModifyListener listener) : void – Text – 38%

每当开发人员使用支持的API(如上例中的SWT)时,Code Recommenders会自动从Eclipse服务器上逐个下载知识库。

Code Recommenders 1.0的基本代码与Eclipse UI的代码紧紧地捆绑在一起,使它很难在Eclipse IDE之外使用。Code Recommenders 2.0已经将推荐引擎从Eclipse特有的UI组件中重构出来,上述情况不复存在。该工具在Eclipse UI中的集成仍然以一种类似的方式出现,但现在可以在Headless模式下运行,比如,生成带注释的JavaDoc文档:

protected Control createDialogArea(Composite parent)

创建和返回对话框上部(按钮栏上方)的内容。

参见: 重载createDialogArea方法的子类通常也会重载下面两个方法:

  • configureShell(Shell): 63%
  • okPressed(): 51%

建立在Code Recommenders 2.0基础上的另一项创新是新的上下文相关推荐功能,它考虑了代码补全功能触发点所在的方法的名称。例如,在setter或create方法中,与dispose()相比,更可能调用SWT Text类的getText()。而在一个名为dispose()的方法中,最可能调用的Text类的方法是dispose()。通过选取封闭方法上下文中的第一个单词(使用lowerCamelCase),推荐准确度可以得到提升。

Snipmatch是一个正在孵化中的项目,提供一种在一个集中的位置与其他人共享代码片段的方法。它还不是Code Recommenders 2.0的一部分,但已经相对稳定,很可能被整合到未来的版本中。

Codetrails Connect增加Crowd支持。该功能建立在Code Recommenders 2.0基础上,允许通过私有服务器在团队成员之间或者通过公共服务器在整个社区范围内共享库分析结果。在后一种情况下,开发人员要根据白名单包的列表准确指定需要发送的代码补全事件(在用户从下拉列表中选择一项代码补全时发送)。可以在社区范围内共享事件的默认包列表中包含了多种开源库:

  • android*
  • com.google.*
  • java.*
  • javafx.*
  • javax.*
  • org.apache.*
  • org.eclipse.*
  • org.jboss.*
  • org.w3c.*
  • org.xml.*

因此,使用Codetrails Connect插件时不应该对社区服务器暴露任何个人或内部的代码路径。作为选择,开发人员可以使用私有的Codetrails服务器,这样自然就可以在团队成员间共享任何内容。

ControlFlow Miner是一个独立的库,可以分析现有的编译代码库,并提供建议供希望搭建自己服务器的组织使用;Code Trails公司提供了使用私有服务器的数套方案。将来,Codetrails Connect插件可能支持其它语言。

读者可以从Eclipse市场或者更新站点上安装Code Recommenders 2.0。关于Codetrails Connect或ControlFlow服务的更多信息,参见Codetrails的网站。

查看英文原文:Eclipse Code Recommenders goes Crowd with 2.0

 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT