2013年10月9日 星期三

如何設計好的 API

從 gslin blog 看到的分享好文 「Parse Developer Day Video Series: How to Design Great APIs」。很原則性的大方向概述,但的確,這事好 API 的必要條件。

設計好 API 的動機:懶惰!

好的 API 可以讓你更懶惰

好的 API 的條件

直覺的

看到就知道怎麼用,不需要猜測

  1. 類似的東西就要有類似的結果。例如 length function 對於 string 和 array 應該有類似的結果。
  2. 平行化的結構。類似的命名要有相同的功能,例如 obj.saveInBackground(); vs. obj.deleteInBackground();
  3. 做髒髒的事。在命名上加上足夠的描述來呈現他的危險性、功能性等等。例如 $crashserverfrequency = true;

好文件的

一看就懂得文件,不要讓人去看 Source Code(?

  1. 簡單的問題應該簡單的被解釋。e.g. What does X do?
  2. Tutorial 應該要有趣不要無聊
  3. Quick start 應該要越快越好

Opinionated (自以為是的?)

建造統一哲學的 API,讓他看起來事一個人做的

  1. 風格相同。例如全部都是 REST
  2. 結果相同。例如輸出格式都是 JSON。這句話的意思是指輸出的 default 格式都是相同的,不代表不能選擇性的轉換格式。
  3. PHP String library 命名不統一被表xd..