根据国外媒体报道,卡耐基梅隆大学计算机系的研究人员日前开发了两款工具用于帮助程序员从成千上万的Java API中选择合适的API。
这两款工具的名字分别是Jadeite和Apatite。它们利用了以人为中心的设计技术,从而大大缩短了搜寻合适的类与API的时间。为一个程序选择合适的API并不那么直观,人机交互学教授Brad A. Myers说道。目前Javadoc库中有35000个方法包含在4100个类中,而且这些数字还在不断扩大,因为每发布新版本的Java,就会有一批新的Java API被添加进去。就连***的开发人员也无法完全熟悉这些Java API。
这是所有程序员所面临的基本问题,不管他们是菜鸟还是专家,Myers说道,虽然可以让API设计的更加简单易用,但现有的Java 编程中所用到的大量重要的Java API使用起来仍然很困难。Jadeite和Apatite可以帮助程序员们从现有的API中选择自己所需要的。
Jadeite是Java Documentation with Extra Information Tacked-on for Emphasis的缩写。它可以根据Google搜索提供的API使用频度来通过不同的字体大小来显示API的名称。比如频繁使用的 PrintWriter就会用大号字母来显示,而不经常使用的PrintEvent则用小号字来显示。
Jadeite还使用了众包(Crowd-sourcing)技术来解决有的API并不是顾名思义的包含程序员所希望使用的方法的问题。例如 Message和MimeMessage类并不包含发送email的方法。因此Jadeite可以让不同的用户为需要使用的类和方法添加一个叫做 placeholder的东西,用户可以编辑placeholder从而来给程序员提供指导。在placeholder中可以告诉程序员他们所需要的方法的确切位置。
另外,有的对象的创建对于程序员来说并不是特别熟悉,比如SSL sockets。在这种情况下,Jadeite包含了程序员创建这些对象的最常用代码,用户可以从这些代码范例中得到启发。
通过对用户试用的研究显示使用Jadeite可以比使用标准的Javadoc提高三倍的效率。
Apatite是Associative Perusal of APIs That Identifies Targets Easily的缩写,其实现方法与Jadeite不同,它可以让程序员浏览API之间的关系,可以查看不同的包、类和方法之间的彼此联系。
Jadeite和Apatite目前均处于实验研究阶段,但已经可以让公众使用。将这两个工具推广后会增强它们在众包方面的功能。同时还能给研究人员重要的反馈信息,从而继续对它们进行改进。
小资料:众包技术,原指在产品和服务项目等开发中,以低工资或无偿地招募愿意参加的不特定数目的人员来进行开发工作的开发形态。在软件开发领域中,以开放源代码的形式向互联网等公开源代码,全世界的人通过互联网广泛聚集,利用业余时间进行工作,从而使软件更加完善。在这里众包是指使用者可以为API添加说明,这些说明可以通过互联网被其他使用者共享。
【编辑推荐】