亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-11 00:09:38 來源:ITPUB博客 閱讀:144 作者:i042416 欄目:軟件技術

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

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

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

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

為什么API的設計對程序員如此重要?

API一旦發布,出于兼容性考慮,不能輕易地隨心所欲進行修改,比如刪除參數。

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

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

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

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

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

如何設計一個好的API

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

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

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

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

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

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

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

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

信息封裝 - 公有類盡量避免暴露公有字段出去,最大化信息隱藏

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

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

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

API和文檔的關系

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

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

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

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

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

API的數據都應該允許使用者通過字符串的方式訪問

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

慎用重載

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

選用合適的API參數和返回類型

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

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

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

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

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

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

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

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

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

API重構的最佳實踐

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

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

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

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰县| 临清市| 前郭尔| 宁强县| 乐至县| 隆回县| 乾安县| 伊吾县| 凤凰县| 太白县| 凉城县| 新乡县| 遵义市| 黄平县| 华宁县| 师宗县| 花莲县| 邯郸县| 二连浩特市| 思茅市| 兴文县| 康定县| 玉山县| 沭阳县| 建昌县| 三台县| 清丰县| 霍城县| 甘洛县| 齐齐哈尔市| 绥芬河市| 武川县| 凤庆县| 枞阳县| 克拉玛依市| 通化县| 永兴县| 朝阳区| 龙州县| 志丹县| 萝北县|