根據國外媒體報道,卡耐基梅隆大學計算機系的研究人員日前開發了兩款工具用於幫助程序員從成千上萬的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添加說明,這些說明可以通過互聯網被其他使用者共享。