精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

视频一区三区| 久久久久久久久电影| 日韩欧美国产片| 性国产高清在线观看| 99久久精品免费精品国产| 日本亚洲精品在线观看| 九九热最新地址| 啪啪激情综合网| 欧美日韩一区二区在线观看视频| 水蜜桃在线免费观看| 无码国产精品一区二区免费16| 日韩一区精品视频| 久久69精品久久久久久久电影好| 成年人网站免费看| 国产精品一站二站| 一本到三区不卡视频| 99re8这里只有精品| 欧美日本网站| 粉嫩aⅴ一区二区三区四区五区 | 美女av免费看| 成人福利一区| 欧美一区二区三区人| 99精品视频在线看| 欧美24videosex性欧美| 中文一区在线播放| 蜜桃免费一区二区三区| 黄色av小说在线观看| 毛片av一区二区三区| 欧美在线视频一区二区| 九九精品在线观看视频| 日韩欧美三级| 亚洲欧洲在线视频| 亚洲视频在线播放免费| 欧美三级一区| 欧美一区二区视频在线观看2022 | 岛国av在线一区| 国产这里只有精品| 波多野结衣视频免费观看| 亚洲乱码久久| 欧美激情在线观看视频| 国产盗摄x88av| 天天综合网网欲色| 在线视频精品一| 美女爆乳18禁www久久久久久 | 深夜福利成人| 欧美91精品久久久久国产性生爱| 国产99久久久国产精品免费看 | 国产成人精品免费看视频| 欧美aaaaa成人免费观看视频| 欧亚精品中文字幕| 久久精品国产成人av| 国产亚洲一区在线| 欧美一级免费看| 免费成人在线视频网站| 精品少妇人妻av一区二区三区| 免费污视频在线一区| 在线观看免费一区| 91极品尤物在线播放国产| 日本精品在线中文字幕| 在线观看亚洲专区| jizz18女人| 国产成人视屏| 欧美成人一区二区三区片免费 | 久久久欧美精品sm网站| 蜜桃麻豆www久久国产精品| 欧美3p视频在线观看| 久久久久久久久免费| 性欧美大战久久久久久久免费观看| 国产h视频在线观看| 中文字幕欧美激情一区| 99精品一级欧美片免费播放| 国产黄色一区二区三区 | 亚洲国产经典视频| 亚洲欧美日韩不卡一区二区三区| 日本高清在线观看wwwww色| 17c精品麻豆一区二区免费| 一区二区三区四区免费观看| 色婷婷视频在线观看| 亚洲午夜视频在线观看| 1024av视频| av亚洲一区| 欧美一区二区高清| 国产精品久久不卡| 成人久久一区| 欧美日韩aaaa| 日本视频网站在线观看| 久久99久国产精品黄毛片色诱| 2020国产精品久久精品不卡| 天天综合天天综合| 国产精品美女久久久久久| 日日噜噜夜夜狠狠久久丁香五月| freexxx性亚洲精品| 91福利社在线观看| 国产又黄又嫩又滑又白| 五月国产精品| 成人97在线观看视频| 国产女同在线观看| 老司机精品视频在线| 国产精品一区二区你懂得| 韩国三级av在线免费观看| 亚洲色图20p| 欧美日韩成人免费视频| 欧美美女福利视频| 亚洲精品国产欧美| www.av成人| 免费日韩av| 成人在线观看av| av在线免费观看网| 午夜精品国产更新| 久久成年人网站| 国产精品视频一区二区三区四蜜臂| 欧美成人精品不卡视频在线观看| 无码人妻久久一区二区三区 | 国产婷婷精品| 亚洲xxxx18| 成人免费在线电影| 欧美日韩国产精品一区| 欧美日韩理论片| 欧美日韩激情| 69视频在线播放| 精品人妻少妇AV无码专区| 中文字幕国产一区二区| 免费观看精品视频| 国产精品nxnn| 欧美日韩国产第一页| 亚洲无码精品国产| 国产网站一区二区三区| 精品久久久久久久久久中文字幕| 精品一区二区三区四区五区| 在线观看久久av| 天天做天天爱夜夜爽| 国产盗摄精品一区二区三区在线| 欧美日韩综合另类| 涩涩视频在线播放| 精品国产乱子伦一区| www.av视频| 韩国一区二区三区| 中国成人在线视频| 成人黄色毛片| 在线播放国产一区二区三区| 中文字幕精品无码一区二区| 成人av在线影院| 777av视频| 高清欧美性猛交xxxx黑人猛| 不卡中文字幕| 亚洲色图狂野欧美| 日韩手机在线视频| 99国内精品久久| 日韩精品 欧美| 麻豆一区二区麻豆免费观看| 久久久噜噜噜久久久| 亚洲精品97久久中文字幕无码 | 中文字幕av一区二区三区| 午夜免费在线观看精品视频| 午夜精品久久久久久久99老熟妇| 亚洲免费观看在线观看| www.亚洲自拍| 你懂的国产精品| av日韩中文字幕| av福利导福航大全在线| 亚洲精品久久在线| 日产精品久久久| 欧美经典一区二区| 天天综合网久久| 欧美精品导航| 狠狠色狠狠色综合人人| 欧美性xxx| 日韩在线免费视频观看| 国产高清精品软件丝瓜软件| 亚洲国产综合91精品麻豆| 在线免费观看污视频| 亚洲一区二区三区四区五区午夜 | 国产精品7m凸凹视频分类| 成人夜晚看av| 丰满大乳少妇在线观看网站| 精品亚洲aⅴ在线观看| 日韩国产亚洲欧美| 亚洲日本电影在线| 国产成人精品无码片区在线| 欧美亚洲三级| 亚洲国产一区在线| 国产精品免费精品自在线观看 | 这里只有精品66| 高潮按摩久久久久久av免费| 欧美孕妇与黑人孕交| 3d成人动漫在线| 精品日韩成人av| 日韩在线 中文字幕| 国产精品国产三级国产普通话99| 一级做a爱视频| 午夜在线一区| 大桥未久一区二区| 神马久久av| 亚洲最大的网站| 综合毛片免费视频| 久久亚洲一区二区三区四区五区高| 日本人妻熟妇久久久久久| 在线观看亚洲一区| 精品视频在线观看免费| 久久久精品国产99久久精品芒果| 日韩欧美理论片| 亚洲一区二区动漫| 中国 免费 av| 亚洲盗摄视频| 不卡一区二区三区视频| 国产一区一一区高清不卡| 色综合导航网站| av在线播放网| 亚洲第一中文字幕在线观看| 在线视频播放大全| 欧美日韩综合视频| 久久亚洲成人av| 亚洲天堂中文字幕| 国产在线观看h| av影院午夜一区| 美女被艹视频网站| 日韩av网站在线观看| 精品视频在线观看一区| 91精品秘密在线观看| 日本黑人久久| 欧美天堂影院| 高清国语自产拍免费一区二区三区| 日本黄色一区| 全亚洲最色的网站在线观看| 色www永久免费视频首页在线| 中文字幕日韩在线播放| 黄色av网站在线| 日韩精品中文字| 黄色成人一级片| 欧美一级精品大片| 91成人在线免费| 欧美三级电影在线看| 少妇高潮av久久久久久| 精品久久久久久中文字幕一区奶水| 九九九久久久久| 日韩毛片一二三区| 久草福利资源在线| 中文字幕不卡在线播放| 国产精品免费无码| 久久精品视频一区二区三区| 人妻丰满熟妇av无码久久洗澡| 粉嫩aⅴ一区二区三区四区| 丰满少妇中文字幕| 国产精品1区二区.| 亚洲成人av免费观看| 国产真实乱偷精品视频免| 一区二区在线免费看| 毛片一区二区三区| 精品亚洲一区二区三区四区| 蜜桃视频一区二区三区| 欧美精品性生活| 美腿丝袜亚洲色图| 97超碰成人在线| 韩国av一区二区三区四区| 99国产精品久久久久久| 久久9热精品视频| 国产999免费视频| 国产高清不卡一区| 97精品人人妻人人| av一区二区不卡| 久久av无码精品人妻系列试探| 国产欧美一区二区三区在线老狼 | 成人综合久久| 中文字幕久久综合| 女生裸体视频一区二区三区| 国产精品三级一区二区| 1024精品一区二区三区| 无码播放一区二区三区| 日韩极品在线观看| 亚洲精品成人在线播放| 国产高清精品久久久久| 成人免费无码大片a毛片| 久久嫩草精品久久久精品| 俄罗斯毛片基地| 一区二区三区欧美日韩| www日韩精品| 91国内精品野花午夜精品| 中文字幕一区二区人妻| 日韩欧美在线不卡| 天堂av在线资源| 中文字幕国产亚洲2019| 丝袜在线视频| 2019精品视频| 亚洲青青一区| 久久本道综合色狠狠五月| 日本欧美肥老太交大片| 欧美美女黄色网| 久久久久国内| aaaaaaaa毛片| 欧美激情在线观看视频免费| 国产十六处破外女视频| 91久久国产最好的精华液| 国产av无码专区亚洲a∨毛片| 亚洲精品国产精品久久清纯直播| 婷婷视频在线| 97碰碰碰免费色视频| 亚洲日本中文| 久久精品综合一区| 亚洲精品久久| 国产一级特黄a大片免费| 丁香婷婷综合五月| 5566中文字幕| 日韩欧美一区二区三区| 性生活三级视频| 这里只有精品视频| 日本不卡免费高清视频在线| 91精品在线国产| 精品国产a一区二区三区v免费| 毛片av在线播放| 麻豆精品一区二区av白丝在线| 少妇毛片一区二区三区| 亚洲最新视频在线播放| 亚洲综合五月天婷婷丁香| 精品视频在线观看日韩| 污污影院在线观看| 国产自摸综合网| 欧美天天综合| 日本熟妇人妻xxxxx| jlzzjlzz亚洲日本少妇| 欧美人禽zoz0强交| 欧美精品乱码久久久久久| 国自产拍在线网站网址视频| 欧美亚洲第一区| 久久成人福利| 欧美视频在线观看视频| 国产一区二区三区免费在线观看| 亚洲一二三精品| 色综合久久久久久久| 偷拍精品一区二区三区| 欧美激情成人在线视频| 国产精品日本一区二区三区在线| 亚洲精品第一区二区三区| 日韩国产在线观看| 亚洲黄色小说视频| 色婷婷激情综合| 经典三级在线| 国产精品r级在线| 国产成人一区| 日本久久精品一区二区| 国产色婷婷亚洲99精品小说| 色老头在线视频| 中文字幕精品av| 天堂久久一区| 视频一区二区视频| 国产一区视频在线看| 男人与禽猛交狂配| 日韩一区二区免费高清| 伊人电影在线观看| 成人在线观看网址| 国产欧美高清| 国产激情在线免费观看| 日韩欧美亚洲国产一区| 国产www.大片在线| 91久热免费在线视频| 伊人久久大香线蕉综合四虎小说| 原创真实夫妻啪啪av| 亚洲第一激情av| 天堂а在线中文在线无限看推荐| 欧美主播福利视频| 日本一区二区高清不卡| 日韩av片免费观看| 一卡二卡欧美日韩| 水莓100在线视频| 国产精品免费电影| 亚洲成人一区| 人妻 丝袜美腿 中文字幕| 午夜一区二区三区在线观看| 亚洲欧洲综合在线| 国产精品久久久久免费a∨大胸| 91欧美大片| 神宫寺奈绪一区二区三区| 亚洲国产精品成人av| 乱馆动漫1~6集在线观看| 欧美日韩另类丝袜其他| 美女视频第一区二区三区免费观看网站| 国产三级aaa| 欧美大片一区二区三区| 中文字幕21页在线看| 亚洲图片在线观看| 国产成人av一区| 日韩精品久久久久久免费| 日韩中文字幕在线播放| 国产suv精品一区| www.超碰com| 亚洲综合在线视频| 天堂网在线观看视频| 国产精品入口夜色视频大尺度| 欧美a级在线| 亚洲精品视频久久久| 3d动漫精品啪啪一区二区竹菊| www在线观看黄色| 夜夜爽www精品| 9人人澡人人爽人人精品| 中文字幕欧美在线观看| 国内精品久久影院| 偷拍欧美精品| 中文字幕高清视频| 欧美成va人片在线观看| 精品欧美日韩精品| 九九热只有这里有精品|