優秀API設計的十大原則
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
每個軟體開發人員都使用API。“優秀”的API設計就像魔法。不過,我不知道有多少人可以解釋為什麼有的API很複雜、很難學,而有的則乾淨、簡單、使用起來堪稱是一種快樂。關於這個問題,我將在文中回答,並提供優秀API設計的十條法則。
1.只做你今天需要的
這是最頂級的規則。只解決今天必須解決的問題,最小化需要完成的答案。解決明天的問題的誘惑力是巨大的。但是一定要頂住誘惑!不要提前釋出程式碼,重點是注重縮小發布週期。如果需要花幾個小時的時間來回答新問題,那麼就不用再猜測明天會出現什麼問題了。
2.API模組化
將大型問題轉化為規模較小的、可單獨解決的問題。模組化API更容易學習,並且可以隨時間而改變。你可以用新模組替代舊模組。可以一個一個地教導模組。也可以將API的實驗部分從穩定或傳統的部分中單獨分出來。
3.使用結構化語法
使用結構化的API語法:用thing.action或thing.property代替do_action_with_thing。語法將自然而然地適應模組化的方法,其中每個模組是一個類。
4.使用自然語義
不要發明新概念。只使用開發人員眾所周知的概念,作為類系統的基礎。如果你發現自己需要解釋概念,那說明你出錯了:要麼你在解決以後的問題,要麼你正在錯誤地構建API。
5.API的自我約定
每個類都要嚴格使用相同的樣式和約定。一致性是指當一個人學會這一個類時,他就能夠融會貫通地掌握全部的類。文件化約定,讓它們成為貢獻者必須的標準。
6.API的可擴充套件性
易擴充套件性有許多好處,並不僅僅在於受到貢獻者的歡迎。它還可以讓你延緩實現功能,因為“如果需要的話,後面再新增也很方便”。不需要的功能就不新增,這也是一種雙贏。
7.完全測試
每個類和方法必須經過惡意程式碼的完全測試。要像寫程式碼一樣寫測試,然後像API提供給外界約定文件一樣使用測試。每當程式碼改變的時候就執行這些測試。不要擔心程式碼覆蓋率。重要的是外部約定。也可以考慮使用約定生命週期。
8.分層式成長
保持API突出重點,然後在頂部將新的API分層,以便於它們能隨著時間的推移成長。可擴充套件性並不意味著無限期的成長。明確API的範圍,並在範圍內執行。
9.保持簡單易用
最終的測試要看API的簡單易用程度。你寫的例子,能不能讓你的程式碼看起來更簡單?你是不是強迫使用者說明他們不在乎的選項?有沒有毫無價值的額外步驟?要注重約減少API的可視面積。
10.保持可移植性
不要讓系統概念洩漏到API。整潔有目的地抽象:這個API可以執行在任何作業系統上。API必須能夠隱藏實現,但要注意第4條規則,以及要使用自然抽象。
歡迎大家說說自己的看法。
譯文連結:http://www.codeceo.com/article/10-rules-good-api-design.html
英文原文:Ten Rules for Good API Design
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 優秀程式設計的18大原則程式設計
- 一款優秀的 SDK 介面設計十大原則。
- 如何設計一個優秀的APIAPI
- 優秀互動設計的 UI 原則UI
- 優秀程式設計的18個原則程式設計
- 優秀程式設計師的 18 大法則程式設計師
- 程式設計師修身養性的十大原則程式設計師
- 設計模式“6”大原則!設計模式
- 優秀元件設計的關鍵:自私原則"元件
- 優秀程式設計師的十個習慣程式設計師
- 優秀程式設計師都在注意的十個點程式設計師
- 遊戲設計的三大原則遊戲設計
- 軟體介面設計的20大原則
- 程式設計師程式設計10大原則程式設計師
- 優秀設計師應當知道的20大UI設計原則UI
- 設計模式6大原則設計模式
- 成為優秀程式設計師的十個有效方法程式設計師
- 成為優秀程式設計師的十個Tips程式設計師
- 設計優秀API七大要訣API
- 設計模式的七大原則設計模式
- 設計模式中的幾大原則總結設計模式
- 設計模式的六大原則設計模式
- 優秀程式設計師的優秀歷程程式設計師
- 優秀專案經理的十大準則(轉)
- 【設計原則】物件導向程式設計的六大原則物件程式設計
- 設計類六大原則
- 設計模式之7大原則設計模式
- 設計模式-六大原則設計模式
- 設計模式七大原則設計模式
- 軟體設計7大原則
- 設計模式六大原則設計模式
- 設計模式——六大原則設計模式
- 設計模式 -- 設計模式七大原則設計模式
- Java的設計模式和6大原則Java設計模式
- C++基礎::類設計的幾大原則C++
- 物件導向設計的6大原則物件
- 成為優秀程式設計師的10條黃金法則程式設計師
- 優秀網站設計師應該知道的20個原則網站