對一個模組而言,好的 API 設計是非常重要的,需要考慮到很多細節,例如:
API 的一致性
當你公開 release 你的模組後,你就得考量向後相容的問題,你不能總是 follow you heart 隨意地去改動介面,因為會有連帶效應,一開始介面的設計錯誤,會導致後期難以修復。
API 的彈性
當你在設計 API 時,你需要盡可能地去猜測未來的需求,這裡不是說你要提前實作根本不確定的需求,而是你需要未來留一個洞,就像前面提到的 WDIOReporter
一樣。
API 的可預測性
當你在設計 API 時,不管在 function 命名或參數放置的位置,都應該維持一致的風格,這樣在使用你模組的人,可以更快速理解你的寫作風格,也更容易使用你的模組。
// 一致的命名風格
function findByXXX1(x, y)
function findByXXX2(x, y)
// 不一致的命名風格
function findByXXX1(x, y)
function getXXX2(y, x)