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

如何做到對JavaScript的API兼容

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

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

What’s 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的質量以后,通過良好的設計思路以及改進方法,來保證API的向后兼容。

其他

事實上,Tangram base庫自從1.3.4版本以后,就已經做到了API的向后兼容,如果對Tangram感興趣,可以前往Tangram網站查閱。如果你對Javascript 的API兼容有什么自己的見解,歡迎留言討論。

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

【編輯推薦】

  1. jQuery LigerUI V1.0發布 (包括API和源碼)
  2. 5個界面效果超炫的JavaScript UI框架
  3. JavaScript重構深入剖析
  4. 驚動大神的JavaScript:在Web上運行Linux
  5. 19個很有用的JavaScript庫強烈推薦
責任編輯:陳貽新 來源: 百度泛用戶體驗
相關推薦

2011-11-09 15:49:52

API

2011-12-15 09:47:12

API

2017-12-26 23:42:49

云計算云技術企業

2009-11-20 11:37:11

Oracle完全卸載

2023-11-30 10:13:17

TensorRT架構

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單機并發

2011-04-29 10:32:46

項目管理

2017-11-14 08:25:36

數據庫MySQL安全登陸

2021-06-04 05:54:53

CIO數據驅動數字轉型

2016-06-15 11:06:27

云計算AWS

2018-01-12 15:17:40

數據庫水平分庫數據遷移

2010-05-20 17:29:02

IIS安全

2010-01-13 21:58:02

綜合布線數據安全

2018-05-15 16:19:39

程序員bug代碼

2018-03-14 09:49:35

數據庫遷移
點贊
收藏

51CTO技術棧公眾號

亚洲精品动漫久久久久| 亚洲国产精品天堂| 国产精品日本精品| 99成人在线观看| 国产精品久久久久久久久久辛辛| 亚洲日本乱码在线观看| 成人一区二区在线| 91video| 精品国产乱码久久久久久1区2匹| 精品视频1区2区| 在线观看18视频网站| 日本精品一二区| 日本午夜精品一区二区三区电影 | 91色视频在线| 国产精品老女人精品视频| 国产午夜精品理论片在线| 精品素人av| 欧美日韩一卡二卡三卡| 国产精品久久..4399| 国产一二三区在线| 国产aⅴ综合色| 国产成+人+综合+亚洲欧洲| 四虎精品免费视频| 精品一区欧美| 亚洲精品在线观看视频| 日本激情视频在线播放| 成人免费高清观看| 国产精品国产自产拍高清av | 北条麻妃在线观看视频| 欧美福利在线播放网址导航| 欧美人与性动xxxx| 97av视频在线观看| 日本在线观看高清完整版| 国产日韩欧美在线一区| 国产高清精品一区二区三区| 在线免费观看高清视频| 中文亚洲免费| 久久99久久亚洲国产| 精品一区二区三区蜜桃在线| 久久久久久毛片免费看 | 亚洲国产综合久久| 亚洲精品tv久久久久久久久久| 日韩av在线导航| 日本中文字幕在线不卡| 国产91亚洲精品久久久| 日韩欧美第一页| 国产一线二线三线女| 免费av在线| 欧美经典一区二区三区| 久久综合精品一区| 天天综合网在线观看| 国产成人在线电影| 91嫩草免费看| 国产理论片在线观看| 欧美96一区二区免费视频| 日本道色综合久久影院| 国产午夜视频在线播放| 影音国产精品| 欧美激情精品久久久久久黑人| 精品国产国产综合精品| 成人综合一区| 国产亚洲美女久久| 久久久久亚洲av成人无码电影| 欧美人妖在线观看| 亚洲精品电影久久久| 国产日韩视频一区| 91麻豆精品国产91久久久久推荐资源 | 97香蕉久久夜色精品国产| 青娱乐国产盛宴| 欧美激情日韩| 欧美黑人又粗大| 久久久精品国产sm调教| 欧美精品网站| 欧美精品www| 日韩xxxxxxxxx| 亚洲免费网站| 国产精品极品美女在线观看免费 | 欧美在线性视频| 久久久久99精品成人片我成大片| 亚洲一区二区三区免费在线观看| 7777kkkk成人观看| 日本久久综合网| 日韩国产高清影视| 国产综合色香蕉精品| 97在线播放免费观看| 九九热在线视频观看这里只有精品| 成人黄色免费在线观看| 国产wwwwwww| 成人美女视频在线看| 久久久com| av在线播放网站| 亚洲日本欧美天堂| www.av毛片| 久久久一本精品| 制服丝袜亚洲色图| 大尺度做爰床戏呻吟舒畅| 亚洲黄页网站| xxxxxxxxx欧美| 国产在线欧美在线| 老司机精品视频网站| 国产日韩在线免费| 国产 欧美 自拍| 国产亚洲欧美激情| 一本色道久久88亚洲精品综合| 国产色播av在线| 欧美日韩久久久| 黄色国产在线视频| 大片网站久久| 97精品在线观看| 在线免费观看视频网站| jizz一区二区| 在线视频亚洲自拍| 麻豆mv在线看| 69av一区二区三区| 醉酒壮男gay强迫野外xx| 欧美gayvideo| 91超碰中文字幕久久精品| 伊人网视频在线| 成人高清视频在线| 一本一道久久a久久精品综合 | 亚洲人免费视频| 国产一区二区播放| 日韩电影免费在线看| 国产精品久久久一区二区三区| 搞黄视频免费在线观看| 亚洲国产精品尤物yw在线观看| 欧美三级理论片| 欧美日韩导航| 欧美国产日产韩国视频| 91 中文字幕| 91婷婷韩国欧美一区二区| 300部国产真实乱| 九九热这里有精品| 亚洲欧洲xxxx| 日韩少妇高潮抽搐| 国产一区二区久久| 一本色道久久综合亚洲精品婷婷| 不卡一二三区| 欧美精品一区二区久久婷婷| 中文字幕人妻一区二| 日本女人一区二区三区| 免费在线观看91| а√在线中文网新版地址在线| 欧美一区二区视频在线观看2022| 在线小视频你懂的| 午夜在线视频观看日韩17c| 国产精品视频入口| 激情av在线| 日韩欧美美女一区二区三区| 最新av电影网站| 久久国产剧场电影| 一区二区三区视频| 福利一区二区免费视频| 中文字幕九色91在线| 波多野结衣在线观看视频| 久久一区二区三区四区| 国产中文字幕视频在线观看| 欧美成人一区在线观看| 97成人超碰免| 五月婷婷免费视频| 午夜成人免费电影| 屁屁影院国产第一页| 精品1区2区3区4区| 国产伦精品一区二区三区免费视频 | 免费一级在线观看播放网址| 欧美日韩亚洲成人| 日韩人妻无码一区二区三区| 亚洲综合丁香| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 影音先锋国产精品| 九九99久久| 亚洲黄色免费av| 亚洲免费小视频| 国产一区二区视频免费| 欧美国产日韩一二三区| 天天影视综合色| 91亚洲国产高清| 亚洲最大的免费| 国模私拍视频在线播放| 亚洲精品小视频| 中日精品一色哟哟| 亚洲精品一二三四区| 亚洲婷婷在线观看| 天堂影院一区二区| 在线看无码的免费网站| av综合网址| 午夜精品一区二区三区在线视频 | 国产精品一区二区免费不卡| 成人小视频在线观看免费| 卡通动漫精品一区二区三区| 日韩免费高清在线观看| 男人影院在线观看| 亚洲第一精品夜夜躁人人躁| 国产一级淫片a视频免费观看| 中文字幕av一区二区三区| 日本一本在线视频| 国产精品久久久久久模特| 亚洲精品二区| 91国内精品白嫩初高生| 国产盗摄xxxx视频xxx69| 国产黄色小视频在线| 亚洲精品久久视频| 亚洲天堂aaa| 亚洲一区二区三区四区的| 中日韩精品一区二区三区| 精品亚洲欧美一区| 日韩国产一级片| 日韩av久操| 国产伦精品一区二区三区四区免费 | 日韩黄色三级视频| 亚洲欧洲性图库| 污污内射在线观看一区二区少妇 | 国产色婷婷亚洲99精品小说| 99中文字幕在线| 亚洲专区在线| 欧美三级午夜理伦三级老人| 亚洲三级网址| 成人av免费看| 97精品国产99久久久久久免费| 久久久久久午夜| 在线免费黄色| 国产偷国产偷亚洲清高网站| 精品国产九九九| 欧美亚洲国产怡红院影院| 日韩欧美亚洲国产| 亚洲欧美区自拍先锋| 偷拍女澡堂一区二区三区| 国产成人自拍在线| www午夜视频| 久久成人亚洲| 亚洲人成无码网站久久99热国产| 99久久亚洲精品蜜臀| 日本一区网站| 偷拍亚洲色图| 国产伦精品一区二区三区| 试看120秒一区二区三区| 国产噜噜噜噜久久久久久久久| 无遮挡爽大片在线观看视频| 欧美激情aaaa| 国产三区在线观看| 色阁综合伊人av| 免费黄色片在线观看| 亚洲国产日韩欧美在线动漫| 精品久久国产视频| 欧美一区二区三区性视频| 中文字幕视频一区二区| 欧美中文字幕一二三区视频| 日韩欧美性视频| 亚洲成av人片一区二区三区| 妺妺窝人体色www在线下载| 亚洲精品乱码久久久久久久久| 最新日韩免费视频| 国产精品妹子av| 色欲狠狠躁天天躁无码中文字幕| 久久蜜桃av一区二区天堂| 国产三级国产精品| 久久一二三国产| 亚洲码无人客一区二区三区| 久久奇米777| 日韩av在线看免费观看| 久久婷婷色综合| 在线观看福利片| 久久久亚洲国产美女国产盗摄| 在哪里可以看毛片| 国产欧美日韩在线视频| 99久久99久久精品免费看小说. | 欧美精三区欧美精三区| 一级片在线观看视频| 538在线一区二区精品国产| 国产女人高潮毛片| 欧美v日韩v国产v| 欧美一级一区二区三区| 国产视频在线一区二区| 黄色片在线播放| 中文字幕精品一区久久久久| 里番在线观看网站| 欧美另类极品videosbest最新版本| 亚洲大胆人体大胆做受1| 久久久久中文字幕| 亚洲色图官网| 国产精品久久久久久av| 欧美一区=区三区| 亚洲a在线播放| 精品国内亚洲2022精品成人| 欧美一二三区| 午夜免费一区| 99在线免费视频观看| 另类av一区二区| 潘金莲激情呻吟欲求不满视频| 国产在线精品不卡| 偷偷色噜狠狠狠狠的777米奇| 久久精子c满五个校花| 自拍偷拍第9页| 亚洲高清一区二区三区| 成人毛片一区二区三区| 3d成人动漫网站| 香蕉视频黄在线观看| 亚洲视频视频在线| fc2ppv国产精品久久| 91精品国产乱码久久久久久蜜臀| av在线日韩| 91在线播放视频| 亚洲宅男一区| 亚洲啊啊啊啊啊| 久久三级福利| 中文字幕1区2区| 中文字幕欧美三区| 中文在线观看免费网站| 欧美少妇bbb| 天堂网av2014| 久久精品电影一区二区| 偷拍自拍在线看| 91九色露脸| 青青草国产免费一区二区下载| 国产玉足脚交久久欧美| 久久成人久久爱| 给我看免费高清在线观看| 亚洲天堂福利av| 精品人妻一区二区三区潮喷在线| 日韩视频一区二区在线观看| 二区在线观看| 4438全国亚洲精品在线观看视频| 伊人久久大香| 日韩av在线一区二区三区| 最新日韩在线| 免费黄视频在线观看| 国产精品久久久久久久久免费相片| 中文字幕一区二区三区精品 | 成人av在线播放| 欧美亚洲另类久久综合| 国自产拍偷拍福利精品免费一 | 中文字幕求饶的少妇| 欧美性猛交xxxx黑人| 乱色精品无码一区二区国产盗| 日韩视频永久免费观看| 久久久成人av毛片免费观看| 久久99影院| 激情综合中文娱乐网| 国产又粗又猛又爽又黄| 国产精品九色蝌蚪自拍| 久久久999久久久| 亚洲欧美国产va在线影院| 超碰中文在线| 福利视频一区二区三区| 欧美成人日韩| 6080国产精品| 成人欧美一区二区三区黑人麻豆 | 欧美日韩久久久久久| 国产午夜视频在线观看| 91精品国产高清自在线看超| 韩国女主播一区二区三区| 国产av熟女一区二区三区| 国产精品一区久久久久| 免费在线观看h片| 91精品国产丝袜白色高跟鞋| 婷婷视频在线| 国产日韩在线观看av| 91高清一区| 欧美精品色视频| 亚洲欧美视频在线观看| 99在线精品视频免费观看软件| 久久在线精品视频| 激情不卡一区二区三区视频在线| 亚洲美女自拍偷拍| 国产高清在线观看免费不卡| 欧美成人一二三区| 亚洲国产成人精品电影| av毛片午夜不卡高**水| 久热国产精品视频一区二区三区| 免费日韩av片| 人妻精品久久久久中文| 欧美日韩日日夜夜| gogo在线高清视频| 国产视频一区二区三区四区| 国产女优一区| 毛片aaaaaa| 欧美一区三区二区| av中文在线资源| 蜜桃狠狠色伊人亚洲综合网站| 日欧美一区二区| 欧美a级片免费看| 日韩欧美色综合网站| 久久青草伊人| 少妇免费毛片久久久久久久久| 久久99国产精品成人| 久久久无码一区二区三区| 精品亚洲一区二区三区| 美女视频一区| 欧美狂野激情性xxxx在线观| 久久男人中文字幕资源站| 中文字幕有码无码人妻av蜜桃| 美女999久久久精品视频| 国产精品17p| 日韩亚洲在线视频| 亚洲人吸女人奶水| 午夜国产在线视频| 国产一区二区色| 亚洲每日在线| 欧美另类69xxxx| 欧美精品一区二区三区蜜桃|