1、keynote.pdf
2、api-design.pdf
最近在重構公司的乙個互動中介軟體,在重新設計api及總體架構的時候思考了許多, 不禁萌發了乙個疑問,什麼樣的api才算是乙個設計良好的api呢?
參考了許多的資料,做一下總結。主要來自這個keynote
我們只要是在進行程式設計我們就需要不停的設計api,
api簡單來講可以是乙個呼叫的函式,乙個介面。抽象來說:介面是乙個內聚系統暴漏給外部的一切資訊。 包含但不限於:
這裡**的api均為系統邊界的api設計,而對於內部api來說不在**範圍之內。
變動困難
api就像乙個人一樣,我們和乙個api打交道的時候需要了解這個人的特性偏好等, 有的人很好相處,而有的人讓人很頭疼,尤其是你不得不和他打交道的時候。
和人一樣,如果你不得不和他打交道,要改變他的秉性是很痛苦的,人的「本性難移」, api也一樣,一旦發布了,要改變的成本就很大很大。
好的api應該具有:
易於學習
即使沒有文件也易於使用
不易誤用:這一點很重要,要減少使用者的心智負擔
使用api的**易於維護。這個有點不一樣,不是api本身易於維護,而是api的友好度。 比如介面功能單一,使用簡單,使用者的**也會相應的更易於維護
易於滿足需求:api的完備性和正交性。能夠容易的滿足需求,完備性保證功能完整, 正交性保證介面的簡潔性,不需要為所有的需求提供介面,而是由使用者去組合。
易於擴充套件
基本原則:
專一:乙個api的功能應該是單一的,需要能夠很容易的解釋和理解,也就會更好用。
盡可能的小:小有很多的優勢,易於理解和維護。
盡量少的外部依賴:減少使用者的成本
設計不被實現影響:不要暴漏實現細節給使用者
竟可能少的暴露,不止是內部細節,對於不必要的介面盡量不要發布,比如使用不多的功能, 可以暫時不暴露介面。
良好的命名:盡量做到自描述。
完善的文件
考慮效能
其他具體的方法還是參考後面參考資料的內容吧。
什麼是好的API設計?
摘要 有人言,api設計是程式設計工作中最難的事情。甚至有人認為至少要有10年的工作經驗才能接觸它。不過這裡提出了乙個引人思考的問題 究竟是構建什麼樣的庫需要花費10年的時間去學習?有人言,api設計是程式設計工作中最難的事情。甚至有人認為至少要有10年的工作經驗才能接觸它。其實通過好的培訓或導師學...
什麼是好的API設計?
什麼是api?我們只要是在進行程式設計我們就需要不停的設計api。api簡單來講可以是乙個呼叫的函式,乙個介面。抽象來說,介面是乙個內聚系統暴漏給外部的一切資訊,包含但不限於 api就像乙個人一樣,我們和乙個api打交道的時候需要了解這個人的特性偏好等,有的人很好相處,而有的人讓人很頭疼,尤其是你不...
什麼是好的 API 設計? eolink翻譯
對於試圖完善其 api 策略的團隊來說,良好的 api 設計是乙個經常出現的話題。那麼好的api設計到底是什麼?這篇文章將詳細介紹一些設計 restful api 的最佳實踐。精心設計的 api 的特徵 一般來說,乙個有效的 api 設計將具有以下特點 難以濫用。實現和整合具有良好設計的 api 是...