天天看點

來自Google資深工程師的API設計最佳實踐

來自Google資深工程師Joshua Bloch的分享:API設計最佳實踐

為什麼API設計如此重要?API是一個公司最重要的資産。

為什麼API的設計對程式員如此重要?

API一旦釋出,出于相容性考慮,不能輕易地随心所欲進行修改,比如删除參數。

從API的上帝 - 設計者的視角出發,有助于提高代碼品質。

一個優秀的API應該滿足下列标準:

易學易用,甚至是自描述的,不需文檔也能讓新手快速上手。不易造成誤解。後續維護者易于了解,滿足開閉原則 - 能夠很容易進行擴充。

如何設計一個好的API

首先應該從收集需求出發。注意結合API實作的複雜度一起考慮。

作為第一步,首先給出需求規格文檔,一頁即可:

别指望你的API能讓所有人滿意。也不要指望釋出後,它不會出任何錯誤——那是不可能的。

API也應該遵循單一職責:如果你發覺很難根據你的API實作的功能給它取個合适的名字,這是一個不好的信号,很多時候說明你的API裡面做了太多事情——試着把它們拆成多個API。

資訊封裝 - 公有類盡量避免暴露公有字段出去,最大化資訊隐藏

API命名藝術 - API的名稱也是一門語言。

API和文檔的關系

合理使用繼承和子類,不要濫用裡氏替換原則

采用fail fast 政策,盡可能早地抛出錯誤消息:

API的資料都應該允許使用者通過字元串的方式通路

慎用重載

選用合适的API參數和傳回類型

API裡的參數順序也很有講究

避免冗長的參數清單,參數如果超過3個,使用者就需要通過閱讀文檔才能消費了。

盡量傳回不需要調用者進行異常處理的參數,比如空數組或集合,而不是null

API設計裡的和異常處理相關的最佳實踐

API重構的最佳實踐

API設計和Thread-local相關的最佳實踐

繼續閱讀