北京軟件開發公司如何打破Java的API,JAVA已成爲利用圖書館建設方案共同實踐。而重用的好處是衆所周知的,一個經常被忽視的風險是系統運行時的故障,由於在庫API獨立進化的變化。傳統上,一個程序,它使用的圖書館之間的一緻性檢查在生成時,當整個系統編譯和測試。然而,趨勢部分升級系統重新部署隻進化庫版本的結果的情況下,這些關鍵的驗證步驟被省略。對於Java程序,部分升級創造更多的有趣的問題,編譯器和虛拟機使用不同的規則集執行的提供者和消費者之間的合同的API。
目的
北京軟件開發公司研究瞭(le)真實世界中的程序問題的程度。我們在兩方面感興趣:API兼容性的變(biàn)化作爲圖書館發展的影響,這對使用這些庫的程序。
方法
北京軟件開發公司研究的是基於(yú)Qualitas語料庫20120401版。一個數據集包括109個Java開源項目和564計劃的版本是從語料。我們研究瞭(le)兩類依賴庫:嵌入式圖書館的顯式依賴,和依賴的符号引用定義在Maven構建文件,解決在建立時間。我們已經用API分析JACC,這個工具是基於(yú)流行的ASM字節代碼分析庫。
結果
北京軟件開發公司發現,對於大多數的程序進行,API不穩定不兼容的改變是常見的。令人驚訝的是,在項目中使用自動化的依賴解析更多的兼容性問題。然而,我們發現隻有少數情況下,這一實際影響其他程序使用的API。
結論
宜天信達的結論是,API不穩定是普遍存在的問題和原因使用這些API的程序。因此,更好的工具和方法來保障圖書館發展。