摘要:最近看《計算機體系結構:量化研究方法(第五版)》,發現指令集設計中的一些原則,對API設計也同樣適用,給大家分享一下,
本文中的所有內容來自作業和學習程序中的心得整理,如需轉載請注明出處,周榮華@燧原科技
1 正交
指令集需要滿足操作、資料型別和尋址方式三個方面的功能就是正交的,所以API設計應該也要滿足對外的一些功能需求,一般是基本操作、資料型別定義和記憶體訪問方式,
正交的要求不只是介面設計要覆寫所有功能,還需要盡量減少冗余介面,
2 提供原語而不是解決方案
API應該提供完成解決方案需要的一些原語的集合,而不是某個解決方案,
提供解決方案到API中的最大缺點是穩定性太差,這些解決方案可能在當前適用,但過幾個月,有新的解決方案的時候,原來的API被廢掉的概率非常大,
當然,對部分多個解決方案中共用的一些功能,即使能夠用現有原語實作,額外提供一些公共功能的介面也是一種不錯的選擇,但切忌不要過于特定化,
3 簡化候選項之間的權衡
如果完成一個功能有多種選項,必須要有嚴格的使用場景約束,
多個選項都可以用,會額外增加測驗覆寫的負擔,用戶制定解決方案的時候,也會不知道該選擇哪個,往往會通過多個原型測驗驗證來推動API的實際選擇,但這種測驗得到的結果,在多個版本的API之間可能是不穩定的,這也會給客戶的版本升級帶來巨大負擔,
4 常量編譯期系結
部分呼叫比較頻繁的介面,如果對性能要求特別苛刻的話,需要對外提供inline函式,方便性能的極致優化,
參考檔案:https://ict.iitk.ac.in/wp-content/uploads/CS422-Computer-Architecture-patterson-5th-edition.pdf
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/499483.html
標籤:架構設計
