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

程序員該如何做到API兼容

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

  Whats API?

  API的全稱是application programming interface。

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

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

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

  網(wǎng)絡(luò)接口協(xié)議,如和后端交互的JSON、XML數(shù)據(jù)格式,或者script回調(diào)中的函數(shù)名

  樣式以及HTML接口

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

  一些無意泄露的內(nèi)部實現(xiàn)

  越往后的API,越隱晦,越不容易受到重視,但是一旦這些API發(fā)生變化,可能會導(dǎo)致調(diào)用方出現(xiàn)不符合預(yù)期甚至程序直接報錯的情況。

  Why API cannot be changed?

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

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

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

  ***,我們?yōu)槭裁匆薷腁PI呢?為了API看起來更加漂亮?為了提供更多有趣的功能?還是僅僅我們覺得到了改變了時候了?對于用戶來說,他們更愿意使用一個穩(wěn)定但是看起來不那么時髦的API,而不是使用一個很時髦,但是會經(jīng)常變動的API。在這個問題上,項目開發(fā)者是實用派。但這并不意味著我們不再改進API了,在后面,我會具體介紹如何能讓API保持穩(wěn)定的同時,讓API持續(xù)改進。

  Quality of API

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

  容易理解

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

  一致性

  一致性能大大降低用戶的學(xué)習(xí)和使用成本,用戶過去的努力學(xué)習(xí),能持續(xù)的收效。

  容易查找和學(xué)習(xí)

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

  提供簡單的方案

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

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

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

  如何保證API的兼容

  采用良好的設(shè)計思路

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

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

  保證后續(xù)的需求可以通過擴展的形式完成

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

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

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

  方法優(yōu)于屬性

  工廠方法優(yōu)于構(gòu)造函數(shù)

  避免過多繼承

  避免由于優(yōu)化或者復(fù)用代碼影響API

  面向接口編程

  擴展參數(shù)應(yīng)當(dāng)是便利的

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

  提供擴展點

  有效的API評審

  API設(shè)計完成以后,需要經(jīng)過周密的設(shè)計評審,評審的重點如下:

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

  一致性,是否與系統(tǒng)中其他模塊的接口風(fēng)格一致,是否與對稱接口的設(shè)計一致。

  簡單明了,API應(yīng)該簡單好理解,容易學(xué)習(xí)和使用的API才不容易被誤用,給我們帶來更多的麻煩。

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

  支持持續(xù)改進,API是否能夠方便地通過擴展的方式增加功能和優(yōu)化。

  把握API的生命周期

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

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

  提供試用期,API不可能一開始就是穩(wěn)定,經(jīng)過試用的API才能有更強的生命力

  為API分級:內(nèi)部使用;二次開發(fā)使用;開發(fā)或試用中;穩(wěn)定;棄用API。避免API被濫用的同時,我們可以通過調(diào)整API的級別,來擴大其影響力,也能更優(yōu)雅的結(jié)束一個API的生命周期。

  保持API的逐步改善

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

  提高API的可測試性

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

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

  避免極端的意見

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

  必須漂亮

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

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

  必須高性能(性能可以通過其他手段優(yōu)化,不應(yīng)該影響API的設(shè)計)

  必須絕對兼容(盡管本文一直提到如何保證兼容,但是我們?nèi)匀灰庾R到,一些極少情況下會遇到的不兼容是可以容忍的)

  一些具體的實施方案

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

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

  為其添加額外的參數(shù)或者參數(shù)選項來實現(xiàn)功能添加

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

  在現(xiàn)有的API基礎(chǔ)上進行封裝,提供一個功能更豐富的包或者類

  小結(jié)

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

  其他

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

【編輯推薦】

  1. API設(shè)計新思維:用流暢接口構(gòu)造內(nèi)部DSL
  2. 百度地圖API之如何制作公交導(dǎo)航
  3. 百度地圖API開發(fā)指南
  4. 新浪微博API開發(fā)簡介之用戶授權(quán)(PHP基礎(chǔ)篇)
  5. 谷歌拼音輸入法擴展API開發(fā)指南
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2011-11-09 15:49:52

API

2018-05-15 16:19:39

程序員bug代碼

2011-06-22 09:45:46

JavaScriptAPI

2017-11-30 09:32:36

2018-07-11 15:08:35

2017-11-13 09:20:19

技術(shù)程序員淘汰

2015-04-17 09:34:42

程序員

2018-06-29 16:04:40

2019-10-25 10:33:17

程序員技能開發(fā)者

2011-11-23 14:40:36

程序員

2014-11-28 09:45:35

程序員

2014-11-25 09:31:17

程序員

2010-07-29 11:00:59

程序員

2020-04-21 14:50:21

Shopify軟件程序員

2009-06-25 09:33:43

Java API程序員

2014-03-27 11:10:46

程序員老程序員

2017-04-07 13:15:44

程序員辭職

2020-04-26 09:44:04

微服務(wù)容器架構(gòu)

2015-08-18 09:21:45

程序員老板客戶

2012-07-16 00:51:36

程序員效率
點贊
收藏

51CTO技術(shù)棧公眾號

国产麻豆91精品| 日韩一区二区三区免费播放| 婷婷综合另类小说色区| 蜜桃狠狠色伊人亚洲综合网站| 无码人妻精品一区二| 欧美电影三区| 亚洲精品一线二线三线无人区| 国产欧美在线一区| 黄网站在线播放| 丰满白嫩尤物一区二区| 国产精品免费一区| 久久久久无码国产精品| 国产一区二区三区天码| 日韩视频在线观看一区二区| 无码精品国产一区二区三区免费| 在线观看二区| 99国产精品国产精品久久| 成人国产精品一区二区| 免费看日批视频| 中文字幕亚洲精品乱码| 亚洲欧美一区二区三区久久| 欧美69精品久久久久久不卡| 国模视频一区| 五月婷婷色综合| 无码人妻aⅴ一区二区三区日本| 青青久在线视频免费观看| 精品综合久久久久久8888| 69国产精品成人在线播放| 久久久99999| 国产一区毛片| 日韩国产欧美精品在线| 国产人妻精品久久久久野外| 浪潮色综合久久天堂| 亚洲.国产.中文慕字在线| 综合一区中文字幕| av在线电影免费观看| 久久久久久久久伊人| 国产乱人伦精品一区二区| 999av视频| 久热成人在线视频| 国产精品国产三级国产aⅴ9色| 日本三级免费看| 欧美在线日韩| 成年人精品视频| 亚洲 欧美 变态 另类 综合| 欧美日韩激情在线一区二区三区| 日韩精品视频在线观看网址| 国产69视频在线观看| 成人在线啊v| 欧美精选一区二区| 亚洲一级片av| 日韩专区视频| 欧美日韩亚洲国产综合| 久久精品免费网站| 亚洲欧洲自拍| 欧美日韩中文字幕在线| 免费看国产曰批40分钟| 九色porny丨国产首页在线| 亚洲国产裸拍裸体视频在线观看乱了 | 色老头一区二区三区| 三上悠亚影音先锋| 精品国产一区二区三区四区| 国产一区二区三区四区福利| 欧美人与性囗牲恔配| 成人情趣视频| 久久精品国产欧美亚洲人人爽| 久久久久久久麻豆| 午夜久久99| 韩剧1988免费观看全集| 黄色一级片免费在线观看| 国产精品日本欧美一区二区三区| 琪琪第一精品导航| 91丨九色丨海角社区| 蜜臀国产一区二区三区在线播放 | 日日碰狠狠添天天爽超碰97| 日韩电影毛片| 91国内精品野花午夜精品| 亚洲黄色小视频在线观看| 91精品网站在线观看| 精品精品欲导航| 97超碰在线资源| 日韩在线视屏| 久久琪琪电影院| 成人免费毛片视频| 久久精品国产99久久6| 成人亚洲激情网| 欧洲成人一区二区三区| 国产三级三级三级精品8ⅰ区| 亚洲精品一区国产精品| 在线观看午夜av| 黄色精品在线看| 精品久久久久久中文字幕2017| 日韩亚洲国产免费| 亚洲第一av网站| 免费看的黄色网| 国产精品第十页| 国产成人一区三区| 亚洲免费视频网| 中文字幕免费一区| 中文字幕无码精品亚洲资源网久久| 日本电影欧美片| 日韩欧美中文一区二区| 波多野结衣 在线| 亚洲欧美在线专区| 国产mv久久久| 亚洲欧美激情另类| 国产精品久久久久久久岛一牛影视| 女人色极品影院| 久久精品国产福利| 国产视频在线观看一区二区| 免费高清在线观看电视| 国产农村妇女精品一二区| 国产在线精品自拍| 免费在线黄色网址| 亚洲线精品一区二区三区| 五月婷婷丁香综合网| 日韩美女国产精品| 久久999免费视频| 在线免费观看高清视频| 91碰在线视频| 欧美人成在线观看| 精品国产乱码一区二区三区| 伊人久久综合97精品| 久久免费激情视频| 成人黄色在线网站| 乱子伦一区二区| 狠狠久久伊人中文字幕| 亚洲视频在线免费看| 日韩 欧美 亚洲| 国产精品12区| 干日本少妇视频| 亚洲国产精选| 中国日韩欧美久久久久久久久| 亚洲欧美偷拍一区| 99精品视频一区| 免费观看美女裸体网站| silk一区二区三区精品视频| 欧美日本在线视频中文字字幕| 国产精品无码天天爽视频| 国产精品电影一区二区三区| 性欧美极品xxxx欧美一区二区| 一道本一区二区三区| 欧美一级视频一区二区| 五月婷婷六月激情| 精品久久久免费| 欧美做受喷浆在线观看| 亚洲精品婷婷| 精品久久久久久亚洲| 九色porny丨首页入口在线| 亚洲激情视频在线| 中国一级特黄毛片| 成人高清在线视频| 亚洲熟妇无码一区二区三区导航| 涩爱av色老久久精品偷偷鲁| 成人a在线观看高清电影| 亚洲精品成人久久| 精品成人久久久| 久久综合久久综合久久| 成人久久久久久久久| 自拍视频一区| 国产精品狼人色视频一区| 在线免费观看黄色网址| 欧美日韩三级一区| 欧美三级黄色大片| 福利一区福利二区| 波多野结衣乳巨码无在线| 亚洲区小说区图片区qvod按摩| 国产成人欧美在线观看| 午夜毛片在线| 日韩免费观看高清完整版在线观看| 国产在线观看成人| 91玉足脚交白嫩脚丫在线播放| 99精品免费在线观看| 俺要去色综合狠狠| 亚洲最大成人免费视频| 美女91在线| 亚洲新中文字幕| 国产农村妇女毛片精品| 香蕉av福利精品导航| 久久久久亚洲av无码a片| 国产一区二区三区视频在线播放| av在线免费观看国产| 日韩精品福利一区二区三区| 国产免费亚洲高清| 久久久123| 国产亚洲一区精品| 精品人妻一区二区三区含羞草| 亚洲成av人**亚洲成av**| 国产高潮呻吟久久| 国产一区二区三区四| 日韩精品视频久久| 亚洲国产一区二区在线观看| 精品国产免费一区二区三区 | 永久亚洲成a人片777777| 国产精品一区视频网站| av在线播放一区| 久久噜噜噜精品国产亚洲综合| 国产在线黄色| 精品国产三级a在线观看| 亚洲国产无线乱码在线观看| 悠悠色在线精品| 久久久精品成人| av成人动漫在线观看| 九九久久久久久| 久久午夜精品| 给我免费播放片在线观看| 久久人体视频| 欧美二区在线看| 国产精品调教视频| 国产在线观看精品一区二区三区| 亚洲国产成人二区| 色综合91久久精品中文字幕| 91av资源在线| 日韩av中文在线| 精品人妻无码一区二区| 欧美另类高清zo欧美| 福利网址在线观看| 午夜国产不卡在线观看视频| 亚洲av鲁丝一区二区三区 | 亚洲v国产v在线观看| 久久久久久久久久久久久久久久久久久久| 国产美女被下药99| 电影天堂国产精品| 91国产在线精品| 欧洲黄色一区| 久久国产精品免费视频| 欧美人xxx| 中文字幕成人精品久久不卡| 黄色网址在线播放| 亚洲色图13p| 色吊丝在线永久观看最新版本| 精品国产乱子伦一区| 国产日韩欧美一区二区东京热| 欧美视频一区二区三区四区| 黄色片中文字幕| 天天综合色天天| 日韩伦理在线视频| 亚洲福利国产精品| 激情五月少妇a| 亚洲综合在线免费观看| 青青草原免费观看| 尤物视频一区二区| 国产在线视频99| 亚洲国产精品久久一线不卡| 国产亚洲精品女人久久久久久| 一区二区三区四区视频精品免费| 青娱乐免费在线视频| 亚洲黄网站在线观看| 国产男女猛烈无遮挡在线喷水| 国产精品激情偷乱一区二区∴| 亚洲女人久久久| 亚洲激情中文1区| 国产亚洲自拍av| 亚洲成人免费av| 日本午夜视频在线观看| 欧美性开放视频| 免费黄色片视频| 欧美日韩一区二区三区不卡| 亚洲综合一区中| 日韩欧美中文字幕一区| 欧美一级在线免费观看| 麻豆国产精品777777在线| 亚洲18私人小影院| 99re6在线精品视频免费播放| 91av成人在线| 福利一区视频| 18成人在线| 羞羞答答一区二区| 亚洲巨乳在线观看| 欧美日韩国产免费观看 | 午夜精品久久久久久久蜜桃app| 少妇视频在线播放| 日韩久久一区二区| 国产在线观看你懂的| 日韩欧美在线视频观看| 一级久久久久久| 日韩一区二区三区免费观看| 少妇精品视频一区二区| 中文在线不卡视频| 宅男在线观看免费高清网站| 91chinesevideo永久地址| 国产成人精品一区二区三区视频| 亚洲a成v人在线观看| 麻豆一区一区三区四区| 亚洲成人av动漫| 精品动漫3d一区二区三区免费版 | 亚洲美女喷白浆| 老司机在线看片网av| 欧美激情2020午夜免费观看| 毛片无码国产| 高清国语自产拍免费一区二区三区| 影视先锋久久| 欧美xxxx吸乳| 日韩精品电影在线| japanese在线观看| 亚洲欧洲日韩在线| 久久久久久久极品| 3atv一区二区三区| 欧美色18zzzzxxxxx| 九九热在线精品视频| 99久久综合国产精品二区| 国产偷久久久精品专区| 久久影院一区| 欧美三级午夜理伦三级| 国产精品1024| 亚洲一级二级片| 色综合亚洲欧洲| 懂色av成人一区二区三区| 中文字幕在线日韩| 美女av在线免费看| 18成人在线| 91九色精品国产一区二区| 欧美污视频网站| www.成人网.com| 国产精品对白刺激久久久| 国产综合视频在线| 在线看日韩av| 欧美gay视频| 精品不卡一区二区三区| 欧美午夜不卡| 182午夜视频| 国产精品久久久久桃色tv| 无码无套少妇毛多18pxxxx| 亚洲国内高清视频| 日本成人不卡| 91网站免费看| 亚洲啊v在线观看| 午夜免费福利视频在线观看| 国产人伦精品一区二区| 久草视频一区二区| 精品无人区乱码1区2区3区在线| 黄色在线观看视频网站| 51成人做爰www免费看网站| 外国成人免费视频| 亚洲欧美aaa| 综合av第一页| 精品国产18久久久久久| 久久激情视频久久| 亚洲欧美专区| 男女h黄动漫啪啪无遮挡软件| 麻豆精品在线视频| 小嫩苞一区二区三区| 欧美日本一道本在线视频| 毛片激情在线观看| 成人性教育视频在线观看| 91精品国产乱码久久久久久| 精品国产鲁一鲁一区二区三区| 亚洲欧美自拍偷拍色图| 国产尤物视频在线观看| 久久精品人人做人人爽| 午夜视频一区二区在线观看| 欧美 亚洲 视频| 顶级嫩模精品视频在线看| 国产极品美女高潮无套嗷嗷叫酒店 | 男人的天堂狠狠干| 91在线云播放| 久久久久久久亚洲| 丝袜情趣国产精品| 99re8精品视频在线观看| 桥本有菜av在线| 国产成人精品亚洲日本在线桃色 | 欧美一卡二卡在线观看| 四虎影视国产在线视频| 国产一区二区免费在线观看| 翔田千里一区二区| 2019男人天堂| 欧美一区二区免费视频| а√天堂中文在线资源8| 欧美日韩一区综合| 麻豆一区二区三区| 欧美日韩国产精品综合| 精品一区二区三区电影| 成人免费在线观看视频| 超碰97在线看| 91麻豆视频网站| 国产精品久久久午夜夜伦鲁鲁| 欧美激情亚洲自拍| 色综合综合网| 韩国三级在线播放| 黑人欧美xxxx| 国产激情视频在线观看| 国模精品一区二区三区| 日韩国产高清在线| 久久免费看少妇高潮v片特黄 | 午夜在线免费观看视频| 成人av电影免费| 天堂蜜桃91精品| 欧美极品视频在线观看| 亚洲性日韩精品一区二区| 欧美h版在线观看| 91淫黄看大片| 亚洲国产视频直播| 午夜免费视频在线国产| 国产日韩一区欧美| 激情亚洲综合在线| 国产精品久久久久久久久久久久久久久久久 | 久久人体av| 北条麻妃在线视频观看| 亚洲视频一二三| 免费在线黄色电影|