精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何做到API兼容

開發 前端
本文主要介紹什么是API,以及API兼容的重要性,最終給出方案如何評估API,以及如何做到API兼容。

Whats API?

API的全稱是application programming interface。

而很多時候,程序開發者僅僅把函數、類的接口做為API的一部分,而忽略了其他重要的編程接口。

事實上,在前端Javscript編程中常見的API包括:

◆ 函數、類接口,包括參數,返回值,函數對外部對象(常常是DOM)的具體操作等

◆ 網絡接口協議,如和后端交互的JSON、XML數據格式,或者script回調中的函數名

◆ 樣式以及HTML接口

◆ 外部依賴(對瀏覽器具體特性的依賴)

◆ 一些無意泄露的內部實現

越往后的API,越隱晦,越不容易受到重視,但是一旦這些API發生變化,可能會導致調用方出現不符合預期甚至程序直接報錯的情況。

Why API cannot be changed?

API是程序協同開發的重要保證,API的用戶希望API的提供方提供的是一段功能明確、接口明了的程序。更重要的是,用戶更期望在程序升級以后,他們能夠不經思考地升級這些第三方代碼。

一旦上述提到的5個API中的任何一個發生變化,可能會給他們帶來巨大的代價,用戶需要排查所有調用的代碼,需要更改一些協議,需要調整所有與之相關的部分,這些工作對他們來說都是額外的,在預期之外的。如果辛辛苦苦完成這些以后,還在測試過程中發現了相關的bug,那對用戶的打擊就更大了。

如果API經常發生變化,用戶就會失去對這段程序的信任,他們會更傾向自己獲得源代碼以后,按照自己的需求進行修改,自行維護一個內部的API比調用一個不斷發生變化的外部API要容易接受的多,雖然這樣做和我們協同開發、模塊化開發的初衷是完全相悖的。

***,我們為什么要修改API呢?為了API看起來更加漂亮?為了提供更多有趣的功能?還是僅僅我們覺得到了改變了時候了?對于用戶來說,他們更愿意使用一個穩定但是看起來不那么時髦的API,而不是使用一個很時髦,但是會經常變動的API。在這個問題上,項目開發者是實用派。但這并不意味著我們不再改進API了,在后面,我會具體介紹如何能讓API保持穩定的同時,讓API持續改進。

Quality of API

在正式說兼容性之前,首先要明確一下,什么是好的API,因為導致API的不兼容的根源總是來自一個想法:期望通過這次改變把API變得更好。

容易理解

如果一個API不能讓大多數使用者快速學會,這一定不是一個好的API。 比如iOS的滑動解鎖,老人和小孩都能都能一次解鎖,而Nokia的經典兩鍵解鎖,你懂的。

一致性

一致性能大大降低用戶的學習和使用成本,用戶過去的努力學習,能持續的收效。

容易查找和學習

API必須要有文檔,并且介紹清晰,提供盡可能多的示例和可copy-paste的代碼,降低用戶的使用門檻。

提供簡單的方案

API要能解決復雜的問題,提供很多可配置項,但是對于那些最常見的case,如果有一個簡單的方案供給用戶使用,這樣能大大提高API的可用性

保護用戶在API上的已有工作

用戶過去在調用API、基于API開發所做的工作,這樣才能給用戶帶來價值的同時,不破壞他們過去的勞動成果。

如何保證API的兼容

采用良好的設計思路

在設計過程中,如果能按照下面的方式來進行設計,會讓這個API生命更長久

◆ 面向用例的設計,收集用戶建議,把自己模擬成用戶,保證API設計的易用和合理

◆ 保證后續的需求可以通過擴展的形式完成

◆ ***版做盡量少的內容,由于新需求可以通過擴展的形式完成,因此盡量少做事情是抑制API設計錯誤的一個有效方案

◆ 對外提供清晰的API和文檔規范,避免用戶錯誤的使用API,尤其是避免API(見***節)靠后級別的API被用戶知曉與誤用

除此之外,下面還列出了一些具體的設計方法:

◆ 方法優于屬性

◆ 工廠方法優于構造函數

◆ 避免過多繼承

◆ 避免由于優化或者復用代碼影響API

◆ 面向接口編程

◆ 擴展參數應當是便利的

◆ 對組件進行合理定位,確定暴露多少接口

◆ 提供擴展點

有效的API評審

API設計完成以后,需要經過周密的設計評審,評審的重點如下:

◆ 用例驅動,評審前必須提供完善的使用用例,確保用例的合理性和完備性。

◆ 一致性,是否與系統中其他模塊的接口風格一致,是否與對稱接口的設計一致。

◆ 簡單明了,API應該簡單好理解,容易學習和使用的API才不容易被誤用,給我們帶來更多的麻煩。

◆ API盡可能少,如果一個API可以暴露也可以不暴露,那么就不要暴露他,等到用戶真正有需求的時候再將它成為一個公開接口也不遲。

◆ 支持持續改進,API是否能夠方便地通過擴展的方式增加功能和優化。

把握API的生命周期

每一個API都是有生命周期的,我們需要讓API的生命周期更長,并且在API的生命周期結束時能讓其平滑的消亡。

◆ 告訴用戶我們是如何設計的,避免誤用,提供指導,錯誤的使用往往是縮短API壽命的一大殺手

◆ 提供試用期,API不可能一開始就是穩定,經過試用的API才能有更強的生命力

◆ 為API分級:內部使用;二次開發使用;開發或試用中;穩定;棄用API。避免API被濫用的同時,我們可以通過調整API的級別,來擴大其影響力,也能更優雅的結束一個API的生命周期。

保持API的逐步改善

過去我們總希望能將現有的不合理的設計完全推翻,然后按照現在美好的思路,重新設計這個API,但是在一段時間以后,又會碰到一樣的狀況,需要再推翻一次。 如果我們沒有有效的逐步改善的辦法,依靠推翻現有設計,重新設計API只能讓我們回到起點,然后重現之前的過程。 要有一套行之有效的持續改善的辦法來在API兼容的同時,改善API使之更好。

提高API的可測試性

API需要是可測試的,測試不應依賴實現,測試充分的API,尤其是經過了嚴格的兼容性整合測試的API,更能保證在升級的過程中不出現兼容性問題。

兼容性整合測試,是指一組測試用例集合,這組測試用例會站在使用者的立場上使用API。在API升級以后,再檢測這組測試用例是否能完全符合預期的通過測試,盡可能的發現兼容性問題。

避免極端的意見

在設計API的時候,一定要避免任何極端的意見,尤其是以下幾點:

◆ 必須漂亮

◆ API必須被正確地使用(用戶很難理解如何正確的使用API,API的設計者要充分考慮API被誤用的情況:如果一個API可能會被誤用,那么它一定會被誤用)

◆ 必須簡單(我們總會面臨復雜的需求,能兩者兼顧的API是更好的API)

◆ 必須高性能(性能可以通過其他手段優化,不應該影響API的設計)

◆ 必須絕對兼容(盡管本文一直提到如何保證兼容,但是我們仍然要意識到,一些極少情況下會遇到的不兼容是可以容忍的)

一些具體的實施方案

在一個API不可避免要消亡或者改變的時候,我們應該接受并且面對這個事實,下面列舉了幾種保證兼容性的前提下,對API進行調整的辦法:

◆ 將API標記為棄用,重新建立一個新的API。如果一個API不可避免要被消亡,這是唯一的辦法。

◆ 為其添加額外的參數或者參數選項來實現功能添加

◆ 將現有API拆成兩部分,提供一個精簡的核心API,過去的API通過封裝核心API上實現。這通常用于解決用戶需要一個代碼精簡的版本時。

◆ 在現有的API基礎上進行封裝,提供一個功能更豐富的包或者類

小結

設計一個保持兼容的API是很困難的。在這之前,作者需要理解什么是API,以及如何評估API的質量以后,通過良好的設計思路以及改進方法,來保證API的向后兼容。

其他

事實上,Tangram base庫自從1.3.4版本以后,就已經做到了API的向后兼容,如果對Tangram感興趣,可以前往Tangram網站查閱。

如果你對Javascript 的API兼容有什么自己的見解,歡迎留言討論。

原文:http://www.baiduux.com/blog/2011/06/21/javscript-api-compatible/

【編輯推薦】

  1. API設計新思維:用流暢接口構造內部DSL
  2. 百度地圖API之如何制作公交導航
  3. 百度地圖API開發指南
  4. 新浪微博API開發簡介之用戶授權(PHP基礎篇)
  5. 谷歌拼音輸入法擴展API開發指南
責任編輯:陳貽新 來源: 百度泛用戶體驗
相關推薦

2011-06-22 09:45:46

JavaScriptAPI

2011-12-15 09:47:12

API

2009-11-20 11:37:11

Oracle完全卸載

2019-08-08 10:18:15

運維架構技術

2016-01-08 10:03:07

硅谷通吃互聯網

2022-09-09 08:41:43

Netty服務端驅動

2010-03-30 10:44:05

Nginx啟動

2024-12-04 13:52:30

2021-05-24 10:55:05

Netty單機并發

2017-11-14 08:25:36

數據庫MySQL安全登陸

2021-06-04 05:54:53

CIO數據驅動數字轉型

2018-01-12 15:17:40

數據庫水平分庫數據遷移

2016-06-15 11:06:27

云計算AWS

2023-11-30 10:13:17

TensorRT架構

2010-05-20 17:29:02

IIS安全

2018-05-15 16:19:39

程序員bug代碼

2018-11-21 10:25:35

硬件故障自愈運維

2018-03-14 09:49:35

數據庫遷移

2015-12-02 11:30:37

京東搜索京東推薦

2010-01-13 21:58:02

綜合布線數據安全
點贊
收藏

51CTO技術棧公眾號

欧美日韩1080p| 午夜精品亚洲| 中文字幕 久热精品 视频在线| 欧美在线观看网站| 一级片视频免费看| 欧美久久久网站| 依依成人精品视频| 欧美一区1区三区3区公司 | xfplay5566色资源网站| 欧美与亚洲与日本直播| 亚洲综合久久久| 日韩一区二区三区资源| 六月婷婷综合网| 日韩激情视频网站| 欧美精品videosex性欧美| 免费看黄色的视频| 91成人午夜| 欧美久久久影院| 一女被多男玩喷潮视频| 午夜成年人在线免费视频| 99riav久久精品riav| 国产在线精品一区免费香蕉 | 欧美性生交大片免网| 免费在线精品视频| 亚洲一卡二卡区| 色婷婷国产精品免| 日韩精品福利一区二区三区| 欧美区视频在线观看| 97国产精东麻豆人妻电影| 爆操欧美美女| 国产精品电影院| 日韩啊v在线| 无码精品一区二区三区在线| 国产激情精品久久久第一区二区| 国产精品一区二区三区久久久| 麻豆精品一区二区三区视频| 久久中文字幕av一区二区不卡| 精品亚洲一区二区三区| 亚洲香蕉中文网| 亚洲视频一起| 欧美一卡2卡三卡4卡5免费| 在线观看免费成人av| 中文字幕影音在线| 好吊成人免视频| 鲁一鲁一鲁一鲁一澡| jizzjizz中国精品麻豆| 亚洲一区欧美一区| 国产精品国三级国产av| 女人黄色免费在线观看| 亚洲人成人一区二区在线观看| 欧美猛男超大videosgay| 国产精品成人v| 无码人妻精品一区二区三区不卡| 性欧美videos另类喷潮| 5566成人精品视频免费| 日本系列第一页| 亚洲美女色禁图| 2018国产精品视频| 亚洲天堂男人av| 日韩精品成人一区二区三区| 国产精品国产三级国产专播精品人 | 永久av在线| 亚洲国产精品精华液ab| 亚洲精品久久区二区三区蜜桃臀| 777电影在线观看| 国产精品久久久久aaaa| 玖玖精品在线视频| 好吊日av在线| 精品美女久久久久久免费| 漂亮人妻被中出中文字幕| av免费在线一区| 欧美日韩国产电影| 天堂va欧美va亚洲va老司机| 欧美日韩看看2015永久免费 | 538任你躁在线精品视频网站| 国产激情欧美| 7799精品视频| 911亚洲精选| 天堂综合网久久| 中文字幕久久亚洲| 欧美xxxx黑人xyx性爽| 亚洲成人在线| 国产成人亚洲综合91| 国产乱码精品一区二区| 不卡视频免费播放| 日韩av电影免费在线| 黄黄的网站在线观看| 亚洲午夜在线视频| 免费看国产黄色片| 欧美午夜网站| 亚洲欧美日韩天堂| 国产一区二区视频在线观看免费| 国产亚洲精品v| 国产在线拍揄自揄视频不卡99| 黑人乱码一区二区三区av| 久久久久久电影| 超碰10000| 色猫猫成人app| 亚洲成av人片在线观看香蕉| 日本高清黄色片| 亚洲一级高清| 国内久久精品视频| 成人乱人伦精品视频在线观看| 亚洲精品成av人片天堂无码| 99久久国产热无码精品免费| 99香蕉国产精品偷在线观看| 国产美女久久精品香蕉69| 成人黄色免费视频| 日本一二三四高清不卡| 国产老熟妇精品观看| 亚洲三级在线| 亚洲一区二区黄| 国产精品白浆一区二小说| 美女视频免费一区| 鲁鲁视频www一区二区| fc2ppv国产精品久久| 91黄色免费版| 三级黄色片网站| 国产尤物精品| 91亚洲精品久久久久久久久久久久| 可以在线观看的av| 亚洲妇女屁股眼交7| 欧洲美女亚洲激情| 国产高清一区二区| 国产精品无码专区在线观看| 日本一区视频| 天天亚洲美女在线视频| av在线免费观看不卡| 欧美久久综合网| 日本国产欧美一区二区三区| 欧美一级在线免费观看| 一区二区日韩电影| 国产九九九视频| 婷婷综合视频| 国产视频福利一区| 天堂аⅴ在线地址8| 在线观看日韩毛片| 成年人在线免费看片| 麻豆精品91| 欧美极品jizzhd欧美| 天堂√中文最新版在线| 亚洲精品电影网站| 中文字幕在线观看免费视频| 成人av电影免费在线播放| av一区二区三区免费观看| 天堂va在线高清一区| 欧美激情影音先锋| 国产小视频一区| 亚洲444eee在线观看| 插我舔内射18免费视频| 一本久道久久综合狠狠爱| 精品欧美一区二区久久久伦| 国产精品13p| 亚洲精品日韩久久久| 不卡av电影在线| 中文字幕欧美三区| 国产精品区在线| 91精品国产91久久久久久密臀| 91麻豆国产语对白在线观看| 在线免费观看污| 亚洲成色777777女色窝| 在线观看国产亚洲| 久久久五月婷婷| 香蕉视频禁止18| 亚洲91久久| 国产精品免费在线播放| h片在线观看视频免费免费| 亚洲精品不卡在线| 中文字幕视频一区二区| 亚洲色图欧洲色图婷婷| 99免费观看视频| 先锋影音久久久| 亚洲精品中文字幕在线| 免费一级欧美在线大片| 97香蕉超级碰碰久久免费的优势| 免费看国产片在线观看| 在线精品视频一区二区三四| 中文字幕乱码av| 成人免费观看男女羞羞视频| 欧美私人情侣网站| 99久久久国产精品美女| aa日韩免费精品视频一| 免费h在线看| 日韩中文字幕在线| 亚洲免费不卡视频| 一本大道久久a久久精二百| 娇妻被老王脔到高潮失禁视频| 精品处破学生在线二十三| 亚洲开发第一视频在线播放| 伊人久久综合网另类网站| 欧美伦理91i| 亚洲人成色777777老人头| 欧美亚洲综合一区| 久久国产精品二区| 久久精品一区八戒影视| ass极品水嫩小美女ass| 久久亚洲电影| 国产精品视频一二三四区| 综合亚洲自拍| 99免费在线观看视频| 欧美做受高潮中文字幕| 欧美片第1页| 欧美另类第一页| 番号在线播放| 亚洲第一视频网站| 国产精品毛片一区视频播 | 国产麻豆9l精品三级站| 国产l精品国产亚洲区久久| 成人一道本在线| 精品久久久久久久免费人妻| 欧美影院一区| 日韩欧美视频第二区| 亚洲开心激情| 国产欧美日韩中文字幕在线| 狠狠操一区二区三区| 久久九九国产精品怡红院 | 伊人手机在线视频| 久久美女艺术照精彩视频福利播放| 日本成人在线免费观看| 日韩成人av影视| 可以在线看的av网站| 中文字幕一区二区三区乱码图片 | 99久热re在线精品996热视频| yiren22亚洲综合| 人九九综合九九宗合| 免费日韩视频在线观看| 狠久久av成人天堂| 永久免费在线看片视频| 日韩欧美精品一区| 日本不卡免费新一二三区| 欧美精品国产白浆久久久久| 日韩欧美中文字幕在线播放| 亚洲xxxx3d动漫| 国产精品国模大尺度视频| 亚洲精品自产拍| 久久精品一区二区三区四区五区| 国产人成一区二区三区影院| 亚洲中文字幕无码av| 成人91在线观看| 成人在线视频免费播放| 不卡影院免费观看| 国产不卡一二三| av一区二区久久| 三级男人添奶爽爽爽视频| 99久久婷婷国产综合精品| 中文乱码人妻一区二区三区视频| 丰满放荡岳乱妇91ww| av影片在线播放| 懂色av一区二区三区蜜臀| 伊人精品视频在线观看| 国产在线播放一区| 欧美69精品久久久久久不卡 | 色婷婷精品久久二区二区蜜臀av | 日韩中文字幕区一区有砖一区| 黄色国产精品视频| 久久综合网络一区二区| www.欧美日本| 久久国产精品色| 99国产精品免费视频| jvid福利写真一区二区三区| 精品无码在线视频| 国产日韩精品一区| 久久成人小视频| 伊人色综合久久天天人手人婷| 欧美极品aaaaabbbbb| 亚欧色一区w666天堂| 黄色片网站在线免费观看| 欧美性色aⅴ视频一区日韩精品| 亚洲视频久久久| 日韩三级.com| 午夜福利一区二区三区| 亚洲品质视频自拍网| 制服丝袜第二页| 欧美精品一二| 国内精品国产三级国产99| 亚洲国产午夜| 亚洲天堂av线| 国产成a人无v码亚洲福利| 国产精品无码网站| 国产精品国产三级国产普通话蜜臀| 欧美日韩精品亚洲精品| 精品日韩美女的视频高清| 久久精品99北条麻妃| 欧美一区二区免费视频| 天堂资源中文在线| 日韩在线观看成人| 91福利区在线观看| 国产日本欧美一区| 凹凸av导航大全精品| 日本一区二区久久精品| 在线精品小视频| 日本黄色三级大片| 国产一区二区剧情av在线| 波多野结衣影院| ...av二区三区久久精品| 国产精品6666| 欧美精品久久天天躁| 色视频免费在线观看| 久久综合亚洲社区| 悠悠资源网亚洲青| 99精品在线直播| 日本精品黄色| 亚洲熟妇国产熟妇肥婆| 国产一区在线观看视频| 久久99视频精品| 国产亚av手机在线观看| 国产精品久久久久久久app| 2020最新国产精品| 伊人色综合影院| 爽好久久久欧美精品| 久久无码专区国产精品s| 国产精品亲子乱子伦xxxx裸| 天堂在线免费观看视频| 欧美成人精品二区三区99精品| 午夜免费福利在线观看| 国产精品99久久久久久久久久久久 | 欧美日韩视频在线播放| 26uuu亚洲伊人春色| 亚洲网址在线观看| 中文字幕中文字幕在线中心一区 | 男生裸体视频网站| 亚洲香蕉伊在人在线观| 国产精品羞羞答答在线| 中文字幕亚洲欧美日韩高清| 英国三级经典在线观看| 国产色综合一区二区三区| 国产精品v日韩精品v欧美精品网站| 一区二区免费av| 中日韩免费视频中文字幕| 精品久久久久久久久久久国产字幕| 日韩的一区二区| 超碰激情在线| 精品一区二区三区国产| 怡红院精品视频在线观看极品| 风韵丰满熟妇啪啪区老熟熟女| 亚洲日本成人在线观看| 国产又粗又长视频| 久久亚洲精品一区| 亚洲伊人精品酒店| 热这里只有精品| 精品无码三级在线观看视频| 国产乱子轮xxx农村| 亚洲最新色图| 亚洲欧美丝袜| 免费在线看成人av| 青青青视频在线播放| 欧美日韩综合在线| 欧美另类极品| 亚洲最大的免费| 国内自拍一区| 中文字幕天堂网| 欧美日韩在线视频首页| 飘雪影院手机免费高清版在线观看| 欧美在线免费观看| 国产永久精品大片wwwapp| 亚洲人辣妹窥探嘘嘘| 最近中文字幕一区二区三区| 国产三级在线观看视频| 欧美国产日韩一区二区三区| 噜噜噜狠狠夜夜躁精品仙踪林| 免费黄色日本网站| 亚洲国产电影在线观看| 亚洲综合精品视频| 色综合久久88色综合天天看泰| 精品按摩偷拍| 亚洲精品一二三四五区| 国产精品久久福利| www日本高清| 欧美在线国产精品| 国产精品成久久久久| zjzjzjzjzj亚洲女人| 欧美日韩激情小视频| av片在线看| 99国产在线| 日韩成人免费在线| 日韩在线观看视频一区二区| 亚洲精品v天堂中文字幕| 欧美日韩女优| 国产精品88久久久久久妇女| 91在线小视频| 国产又粗又长又大视频| 97国产在线视频| 久久精品国产68国产精品亚洲| 无码人妻久久一区二区三区蜜桃| 色偷偷88欧美精品久久久| av片在线观看永久免费| 久久精品人成| 国产九九视频一区二区三区| 亚洲一区欧美在线| 久久久999国产| 香蕉国产成人午夜av影院| 成人www视频在线观看| 在线xxxx| 国产精品久久久久久久天堂第1集 国产精品久久久久久久免费大片 国产精品久久久久久久久婷婷 | 91久久国产婷婷一区二区| 国产亚洲精品v| 永久免费看黄网站| 中文字幕日韩高清| 日本成人a网站| 在线观看欧美一区二区|