api開發體驗是乙個相對較奇特的關注點,之所以受到關注,是因為這樣的體驗能提高api的程式設計水平,當開發者在編寫程式的時候,夯實無縫的開發體驗是多麼的重要,不但能幫助程式設計師提高程式設計效率,還能讓開發人員站在終端使用者的角度來實現功能目標。
達到api卓越目標四大關鍵
jeremiah lee cohick是fitbit公司的一名工程師,對較為廣泛的開發體驗(dx)領域裡的使用者體驗、框架api體驗有著特別的理解和感受。dx包括程式設計師和他們的開發平台之間的多方面關係,如信任、教育、工具和平台的可用性等等。
需要特別強調的是,cohick將「api體驗」直接描述為「api使用者體驗」,這種體驗上的轉變最終會演變成開發階段影響編寫**的關鍵部分。在2023年舉辦的一次web directions大會上,cohick在演講中就明確定義了可達到api卓越目標的四個關鍵部分:
功能性:
通過api能夠解決什麼問題這一過程就能看出api的價值所在。有用的api體驗除了要努力而有效地解決乙個問題之外,還應該超乎想象的將問題解決。
可靠性:
合理的api一定要具備類似可用性、可擴充套件性、穩定性等這樣的非功能性特徵才是完美的,因為這些特徵能夠幫助開發者團隊建立信任感,並代表一種必須的元素來驅動開發人員使用api。
可用性:
api如何很好的通過自我感知的條件去發現和了解自己的功能?這個api在開發者輕鬆地建立測試過程中是不是很輕便、智慧型?而且在錯誤處理這一流程中又能提供哪些支援呢?這些都是考核api可用性的指標。
舒適性:
乙個api如何能給開發者一種這次用過了下次還想用的快感?
根據cohick所說的,一旦api具備了上述所有的必選條件,其給開發者帶來的是非同凡響的開發體驗;相反,缺失某一特徵或者存在明顯的紕漏都將是給開發者帶來痛苦和混亂的根源。
建立偉大api體驗十大步驟
盡量保持簡單。
避免將營銷術語用在api程式裡,同時還要明確說明,開發者在使用這個api的時候哪些功能是可以隨時關掉的!
整體簡潔、快速登入,此外在api key和服務選項的管理上力求簡單。
提供快速被用開發的api key,以此縮短長等待時間。
明確了成本和限制條件,不要創造過高的期望,還要提供免費試用。
提供長期性的完整文件,定期更新,並避免使用pdf格式。
必須提供互動式檔案,如mashery api explorer和klout互動式控制台,這些都能幫助開發者更容易發現和了解api。
顯示**,給出清晰簡明的使用api方式的例子。
鼓勵開發人員在例如stack overflow和twitter等渠道裡分享自己的經驗、心得。
創造優良dx的四大先決條件
根據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可用性如何估算
一旦決定確定之後,api的可用性方面可以通過幾個維度估算出來,原理是基於在微軟工作的steven clarke提出的理論:
呼叫比:在執行任務的時候,api能為開發者呼叫多少次?
結構:所需資料有多深?噪音比的訊號是什麼?
導航:從乙個結果轉移到另乙個結果有多困難?定位所需的資料多少難度?
開發堆疊大小:需要多少個新元件?
第一次呼叫:乙個新使用者如需執行第一次api呼叫,需要多少時間?
錯誤:修復乙個錯誤很難做到麼?錯誤的本質是什麼?
同樣,api體驗提供了以下幾個方面:參與、快感、熟悉、信任和安全,這些方面都能指導設計整個開發的全過程。最重要的是,上面提到的這幾個方面都是api高可用性質量的直接體現。
阿里雲k8s實戰手冊 [阿里雲cdn排坑指南]cdn
ecs運維指南
devops實踐手冊
hadoop大資料實戰手冊
knative雲原生應用開發指南
oss 運維實戰手冊
雲原生架構***
zabbix企業級分布式監控系統原始碼文件
10g大廠面試題戳領
論敏捷開發重要性
現今企業系統的業務都複雜無比,給你無限的時間做規劃設計,也無法保證軟體產出完全滿足客戶需求。在這種各方充滿著不可控因素的環境下,有什麼銀彈方法解決?論敏捷開發重要性,現今企業系統的業務都複雜無比,給你無限的時間做規劃設計,也無法保證軟體產出完全滿足客戶需求。這當中原因有很多,有主觀原因,有客觀原因。...
使用者體驗的重要性
網際網路的時代,說是乙個體驗為王的時代,一點也不為過。在網際網路時代,產品是否能夠做成功,使用者體驗成為乙個關鍵點,使用者購買你的產品,並非是與你結束了交易,而是乙個新的開始。當使用者拿起你的產品,使用你的產品的時候,使用者體驗之旅才真正開始,而使用者的體驗之旅是否愉快,將直接影響到你的口碑,影響到...
API管理的重要性
在api應用如此廣泛的今天,api管理已經成為產品開發的重要組成部分,如果沒有api管理,程式可能會遇到許多有關於安全或穩定的問題。api管理的範圍非常廣,不僅需要確保api的安全性與穩定性,還需要提供出色的api文件,可寫作可分享等。api管理是指api的生命週期管理,這其中包括api的設計 開發...