何為API開發體驗,為何其如此重要
API開發體驗是一個相對較奇特的關注點,之所以受到關注,是因為這樣的體驗能提高API的程序設計水平,當開發者在編寫程序的時候,夯實無縫的開發體驗是多么的重要,不但能幫助程序員提高編程效率,還能讓開發人員站在終端用戶的角度來實現功能目標。
Jeremiah Lee Cohick是 Fitbit 公司的一名工程師,對較為廣泛的開發體驗(DX)領域里的用戶體驗、框架API體驗有著特別的理解和感受。DX包括程序員和他們的開發平臺之間的多方面關系,如信任、教育、工具和平臺的可用性等等。需要特別強調的是,Cohick將“API體驗”直接描述為“API用戶體驗”,這種體驗上的轉變最終會演變成開發階段影響編寫代碼的關鍵部分。在2014年舉辦的一次Web Directions大會上,Cohick在演講中就明確定義了可達到API卓越目標的四個關鍵部分:
- 功能性: 通過API能夠解決什么問題這一過程就能看出API的價值所在。有用的API體驗除了要努力而有效地解決一個問題之外,還應該超乎想象的將問題解決。
- 可靠性: 合理的API一定要具備類似可用性、可擴展性、穩定性等這樣的非功能性特征才是完美的,因為這些特征能夠幫助開發者團隊建立信任感,并代表一種必須的元素來驅動開發人員使用API。
- 可用性: API如何很好的通過自我感知的條件去發現和了解自己的功能?這個API在開發者輕松地創建測試過程中是不是很輕便、智能?而且在錯誤處理這一流程中又能提供哪些支持呢?這些都是考核API可用性的指標。
- 舒適性 : 一個API如何能給開發者一種這次用過了下次還想用的快感?
根據Cohick所說的,一旦API具備了上述所有的必選條件,其給開發者帶來的是非同凡響的開發體驗;相反,缺失某一特征或者存在明顯的紕漏都將是給開發者帶來痛苦和混亂的根源。
就職于Intel Mashery的產品負責人Amit Jotwani說,和API開發相關的人群確實應該認認真真的對待開發者體驗這一事。下面是他給出的創建偉大API體驗的十個步驟:
- 盡量保持簡單。
- 避免將營銷術語用在API程序里,同時還要明確說明,開發者在使用這個API的時候哪些功能是可以隨時關掉的!
- 整體簡潔、快速登錄,此外在API Key和服務選項的管理上力求簡單。
- 快速設置,理想情況下,只需5分鐘就能創建一個“Hello World”App。
- 提供快速被用開發的API Key,以此縮短長等待時間。
- 明確了成本和限制條件,不要創造過高的期望,還要提供免費試用。
- 提供長期性的完整文檔,定期更新,并避免使用PDF格式。
- 必須提供交互式文件,如Mashery API Explorer和Klout交互式控制臺,這些都能幫助開發者更容易發現和了解API。
- 顯示代碼,給出清晰簡明的使用API方式的例子。
- 鼓勵開發人員在例如Stack Overflow和推ter等渠道里分享自己的經驗、心得。
根據 API Academy 公司的API設計主管Ronnie Mitra的說法,多數咨詢公司幫助各種開發組織改善API性能,API體驗已經開始能夠識別開發者了。想要創造一個優良的DX,應該先設定為四個關鍵目標:
- 協助排除故障(e.g.提供有用的錯誤信息)
- 簡化修繕管理(e.g.推出API版本控制策略)
- 提高可視性(e.g.提供日志和使用訪問權限)
- 建立信任關系(e.g.傳達一種穩定而長久的感覺)
在Stockholm 舉辦的API大會上,Mitra提出了一個框架設想,類似于Cohick之前幫助設計的偉大API,其設想里的API主要有三大支柱:功能性、可用性和體驗。在這種情況下,可用性將關注的焦點從功能性/可靠性轉移到開發者身上,旨在幫助API更易于使用。體驗涉及到開發者對所有的API交互有一種什么樣的感覺,而且這種體驗是建立在功能性和可用性基礎之上的。
Mitra還說,要想提供一個優異的API體驗,關鍵點在于要深入理解它的最終用戶,決不能閉門造車出門不合轍。其實這可以通過給不同的、典型的API用戶進行重新定義就能搞清楚。
如果你不知道誰將會使用你創造出來的API,你根本沒有辦法設計API的可用性。
一旦決定確定之后,API的可用性方面可以通過幾個維度估算出來,原理是基于在微軟工作的 Steven Clarke 提出的理論:
- 調用比: 在執行任務的時候,API能為開發者調用多少次?
- 結構: 所需數據有多深?噪音比的信號是什么?
- 導航: 從一個結果轉移到另一個結果有多困難?定位所需的數據多少難度?
- 開發堆棧大小: 需要多少個新組件?
- 第一次調用: 一個新用戶如需執行第一次API調用,需要多少時間?
- 錯誤: 修復一個錯誤很難做到么?錯誤的本質是什么?
同樣,API體驗提供了以下幾個方面:參與、快感、熟悉、信任和安全,這些方面都能指導設計整個開發的全過程。最重要的是,上面提到的這幾個方面都是API高可用性質量的直接體現。
查看英文原文: What is API Developer Experience and Why It Matters