一、好接口的特性
- 易讀
- 易用,難于誤用
- 功能獨立
- 容易擴充
二、好接口設計的基本原則
- 隻做并做好一件事
函數名自解釋
不恰當的函數名,往往是不恰當設計的征兆
- 如果沒做到上一點,就将函數分解
隻增加,永遠不要删除函數與接口(你永遠不知道這個接口被誰在使用)
- 實作永遠不能影響接口
舉例:不能假定函數調用者隻能使用hash
不能對外暴露實作細節
- 最小化通路
盡量使用私有化成員
注意資訊隐藏
- 注意文檔與注釋
接口不是隻寫給自己(即使隻給自己,也應該有說明)
三、好接口實作的基本原則
- 不要到處拷貝代碼
- 原子性盡量在一個接口内保證
- Fail-Fast原則
出錯盡量早點傳回,交給上層處理,不要勉強搶救
- 避免資料直接通路,而是提供通路方法
- 注意參數與傳回值類型
盡量明确類型
能不用string盡量不用
使用float的地方盡量用double,64bit
- 參數個數不宜太多
如果過多,就要考慮接口的合理性了
你見過沒有注釋的接口麼?
你見過2000行的接口麼?
你見過20個參數的接口麼?
你見過什麼更奇葩的接口?