偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

優(yōu)秀API設計的十大原則

移動開發(fā)
每個軟件開發(fā)人員都使用API。“優(yōu)秀”的API設計就像魔法。不過,我不知道有多少人可以解釋為什么有的API很復雜、很難學,而有的則干凈、簡單、使用起來堪稱是一種快樂。關(guān)于這個問題,我將在文中回答,并提供優(yōu)秀API設計的十條法則。

每個軟件開發(fā)人員都使用API。“優(yōu)秀”的API設計就像魔法。不過,我不知道有多少人可以解釋為什么有的API很復雜、很難學,而有的則干凈、簡單、使用起來堪稱是一種快樂。關(guān)于這個問題,我將在文中回答,并提供優(yōu)秀API設計的十條法則。

1.只做你今天需要的

這是最頂級的規(guī)則。只解決今天必須解決的問題,最小化需要完成的答案。解決明天的問題的誘惑力是巨大的。但是一定要頂住誘惑!不要提前發(fā)布代碼,重點是注重縮小發(fā)布周期。如果需要花幾個小時的時間來回答新問題,那么就不用再猜測明天會出現(xiàn)什么問題了。

2.API模塊化

將大型問題轉(zhuǎn)化為規(guī)模較小的、可單獨解決的問題。模塊化API更容易學習,并且可以隨時間而改變。你可以用新模塊替代舊模塊。可以一個一個地教導模塊。也可以將API的實驗部分從穩(wěn)定或傳統(tǒng)的部分中單獨分出來。

3.使用結(jié)構(gòu)化語法

使用結(jié)構(gòu)化的API語法:用thing.action或thing.property代替do_action_with_thing。語法將自然而然地適應模塊化的方法,其中每個模塊是一個類。

4.使用自然語義

不要發(fā)明新概念。只使用開發(fā)人員眾所周知的概念,作為類系統(tǒng)的基礎(chǔ)。如果你發(fā)現(xiàn)自己需要解釋概念,那說明你出錯了:要么你在解決以后的問題,要么你正在錯誤地構(gòu)建API。

5.API的自我約定

每個類都要嚴格使用相同的樣式和約定。一致性是指當一個人學會這一個類時,他就能夠融會貫通地掌握全部的類。文檔化約定,讓它們成為貢獻者必須的標準。

6.API的可擴展性

易擴展性有許多好處,并不僅僅在于受到貢獻者的歡迎。它還可以讓你延緩實現(xiàn)功能,因為“如果需要的話,后面再添加也很方便”。不需要的功能就不添加,這也是一種雙贏。

7.完全測試

每個類和方法必須經(jīng)過惡意代碼的完全測試。要像寫代碼一樣寫測試,然后像API提供給外界約定文檔一樣使用測試。每當代碼改變的時候就運行這些測試。不要擔心代碼覆蓋率。重要的是外部約定。也可以考慮使用約定生命周期。

8.分層式成長

保持API突出重點,然后在頂部將新的API分層,以便于它們能隨著時間的推移成長??蓴U展性并不意味著無限期的成長。明確API的范圍,并在范圍內(nèi)執(zhí)行。

9.保持簡單易用

最終的測試要看API的簡單易用程度。你寫的例子,能不能讓你的代碼看起來更簡單?你是不是強迫用戶說明他們不在乎的選項?有沒有毫無價值的額外步驟?要注重約減少API的可視面積。

10.保持可移植性

不要讓系統(tǒng)概念泄漏到API。整潔有目的地抽象:這個API可以運行在任何操作系統(tǒng)上。API必須能夠隱藏實現(xiàn),但要注意第4條規(guī)則,以及要使用自然抽象。

歡迎大家說說自己的看法

責任編輯:倪明 來源: 碼農(nóng)網(wǎng)
相關(guān)推薦

2015-09-24 08:52:53

API設計原則

2020-06-09 07:00:00

面向?qū)ο?/a>編程編程原則

2011-09-15 13:05:26

2021-02-05 10:24:48

電腦維修系統(tǒng)備份

2012-03-15 11:15:13

Java設計模式

2009-04-16 13:32:07

Nehalemintel服務器

2010-06-30 10:16:56

UML建模

2012-03-05 13:58:34

設計模式里氏置換

2012-03-07 10:40:19

Java設計模式

2012-03-07 11:03:13

Java設計模式

2024-06-11 08:00:00

2011-07-29 17:36:25

程序員

2011-09-07 09:21:01

設計模式

2012-03-08 10:57:00

Java設計模式

2023-07-11 14:41:04

2012-03-12 16:10:26

Java設計模式

2009-04-15 09:07:00

服務器選購服務器選型Nehalem

2011-07-19 18:13:15

高效數(shù)據(jù)庫

2020-09-18 11:25:43

智能

2010-09-09 13:54:06

DIV CSS
點贊
收藏

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