一種Api相容性檢測方案

2021-09-07 04:15:13 字數 707 閱讀 6309

簡述

一般來說,sdk依賴庫的api相容性問題一直是個隱藏的問題,通常沒有很好的方式解決,即使使用語義化版本管理,在眾多基礎sdk的引用依賴下,不能100%保證其中乙個基礎sdk的api發生不相容的改變後,該改變可能是對外暴露方法的簽名改變、方法名稱改變亦或是類名包名等改變,而發生這些不相容api的變化後,不能保證所有依賴該基礎sdk的上層sdk全部對應的公升級依賴版本。當然,良好的開發模式對於基礎sdk開發來講,對外暴露的api的改變,一般不能直接改變其方法簽名以及包名類名等,而應該相應的標為@deprecated提供向下相容

但是,作為團隊多人協作開發模式下,不能100%保證所有基礎sdk的開發都以相容方式進行api的改變,除此之外,使用到的一些三方開源sdk,這個也不能保證它提供的api是否是相容的,以及在進行元件化、外掛程式化過程中,api相容性問題是必須要考慮的

為什麼要考慮?這裡所說的api相容性問題,不是發生在專案編譯期,而是在執行期,因為專案中的sdk依賴庫依賴進來時,是已經編譯好的位元組碼檔案,所以sdk依賴庫內的相容性問題,只有在程式執行期才可出現,一般表現為crash或無響應,且出現上述情況的前提條件是**剛好執行到了這段,否則還是不會有任何異常

示例乙個通俗的例子,假如有a、b、c三個sdk

a和b都依賴了c,在乙個版本迭代中,其中c的乙個對外暴露的方法發生了簽名的變更,而a對應的更新了c的依賴,b並不知道所以沒更新

即使exclude後使用直接依賴不使用傳遞依賴,結果還是一樣的

相容性常規檢測

碰到檢查支援font family的疑問,一時想不出,查了資料後解惑。順便在此對是否支援的檢測方式,進行一些基本的歸納。瀏覽器並不會對 html 進行編譯,而是直接解析並顯示結果,並以寬鬆模式執行。即使用了錯誤的語法,瀏覽器通常都有內建規則來解析書寫錯誤的標記,頁面仍然可以顯示出來。對於比較新的標籤...

XHTML CSS相容性解決方案

使用xhtml css構架好處不少,但也確實存在一些問題,不論是因為使用不熟練還是思路不清晰,我就先把一些我遇到的問題寫在下面,省的大家四處找 1.在mozilla firefox和ie中的box模型解釋不一致導致相差2px解決方法 div注意這兩個margin的順序一定不能寫反,據阿捷的說法 im...

API測試與相容 效能檢測工具

效能檢測工具 國外 yslow 23條效能軍規,打分制,提供瀏覽器外掛程式 webpagetest 真實瀏覽器,多地區,視屏截圖 googlepagespeed 真實瀏覽器,移動端 國內 效能魔方 推薦 多地區 運營商 多角度 優化建議 賬號owen 阿里測 老牌 多地區 多瀏覽器 訪問限制 17c...