色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>數值算法/人工智能>

Passport SDK的設計與技術細節實例分析

大?。?/span>0.6 MB 人氣: 2017-09-28 需要積分:1

  58 趕集集團旗下擁有多個 App,且全部使用同一套賬號體系,通過 Passport 部門提供的接口進行通信。經過多年迭代,各個 App 中關于 Passport 的功能均出現了一些流程和接口上的差異。為了提高賬號安全,統一服務接口和流程,提高用戶體驗,由此決定開發了一個 Passport SDK,以集成 Passport 的相關功能,并提供給集團內各業務 App 使用。

  在項目開始之初,我們在公司內經過調研發現在使用 SDK 時,大家最關心的問題就是 SDK 使用起來是否簡單,即接口是否簡單、調用流程是否簡單、迭代升級是否簡單?;谶@幾個關鍵問題,我們把設計目標定為:將原本 Passport 功能中繁瑣的流程變成 Passport SDK 中簡單的功能調用和結果處理,讓使用 Passport 功能的開發者不再需要關心那些數量龐大而又無關緊要的部分,取而代之的是享有一個非常良好的開發體驗。由此,我們將設計原則定為:

  接口要精簡;

  服務的流程要黑盒;

  無感知的迭代升級。

  確定了設計原則后,下一步就是明確核心需求。Passport SDK 旨在為 58 同城賬號體系下的用戶提供通用的登錄相關服務頁面和接口。所以我們的 SDK 核心需求是提供服務,即通用服務頁面和通用服務接口,并在用戶調用服務后返回其結果。

  設計簡單且有效的接口

  首先我們從需求上明確接口有哪些?答案是數據接口與服務接口,具體如下:

  數據接口是一些零散的數據存取操作,實際上無法做出太多的精簡。

  服務接口包括各種服務頁面的調起和服務接口的調用:在服務頁面中,App 用戶與服務頁面的交互會觸發對應的業務事件;在服務接口中,會直接觸發對應的業務事件。

  它們有一些共同點,比如都是主動發起的服務,都有各自的回調方法,大部分都需要可選或必選參數。

  按照正常的設計模式,每個服務頁面和服務接口都可以設計為單獨的一個接口。但是因為 Passport 提供了數量眾多的服務,這種設計會造成大量接口的出現,從而增加 SDK 的接入與維護成本。因此在接口的設計上,必須做減法。

  Passport SDK 的服務接口采用了集中式接口,我們把所有的服務頁面和服務接口抽象成服務類型。其中,每個服務類型代表一種服務,有自己的參數傳遞規則,有對應的回調方法。

  如圖 1 所示,我們使用了接口路由的方法,在接口模塊內置了一個路由表,決定服務類型和對應服務(通用服務頁面和通用服務接口)的映射。

  Passport SDK的設計與技術細節實例分析

  圖 1 Passport SDK 服務接口設置

  用戶只需在這個服務接口里傳入服務類型和符合規則的參數即可調用對應服務。服務完成后,會通過服務類型對應的回調方法傳遞結果:

  簡單的接口設計會降低接入工作的成本,并使用戶獲得極好的接入體驗。

  58 趕集集團旗下擁有多個 App,且全部使用同一套賬號體系,通過 Passport 部門提供的接口進行通信。經過多年迭代,各個 App 中關于 Passport 的功能均出現了一些流程和接口上的差異。為了提高賬號安全,統一服務接口和流程,提高用戶體驗,由此決定開發了一個 Passport SDK,以集成 Passport 的相關功能,并提供給集團內各業務 App 使用。

  在項目開始之初,我們在公司內經過調研發現在使用 SDK 時,大家最關心的問題就是 SDK 使用起來是否簡單,即接口是否簡單、調用流程是否簡單、迭代升級是否簡單?;谶@幾個關鍵問題,我們把設計目標定為:將原本 Passport 功能中繁瑣的流程變成 Passport SDK 中簡單的功能調用和結果處理,讓使用 Passport 功能的開發者不再需要關心那些數量龐大而又無關緊要的部分,取而代之的是享有一個非常良好的開發體驗。由此,我們將設計原則定為:

  接口要精簡;

  服務的流程要黑盒;

  無感知的迭代升級。

  確定了設計原則后,下一步就是明確核心需求。Passport SDK 旨在為 58 同城賬號體系下的用戶提供通用的登錄相關服務頁面和接口。所以我們的 SDK 核心需求是提供服務,即通用服務頁面和通用服務接口,并在用戶調用服務后返回其結果。

  設計簡單且有效的接口

  首先我們從需求上明確接口有哪些?答案是數據接口與服務接口,具體如下:

  數據接口是一些零散的數據存取操作,實際上無法做出太多的精簡。

  服務接口包括各種服務頁面的調起和服務接口的調用:在服務頁面中,App 用戶與服務頁面的交互會觸發對應的業務事件;在服務接口中,會直接觸發對應的業務事件。

  它們有一些共同點,比如都是主動發起的服務,都有各自的回調方法,大部分都需要可選或必選參數。

  按照正常的設計模式,每個服務頁面和服務接口都可以設計為單獨的一個接口。但是因為 Passport 提供了數量眾多的服務,這種設計會造成大量接口的出現,從而增加 SDK 的接入與維護成本。因此在接口的設計上,必須做減法。

  Passport SDK 的服務接口采用了集中式接口,我們把所有的服務頁面和服務接口抽象成服務類型。其中,每個服務類型代表一種服務,有自己的參數傳遞規則,有對應的回調方法。

  如圖 1 所示,我們使用了接口路由的方法,在接口模塊內置了一個路由表,決定服務類型和對應服務(通用服務頁面和通用服務接口)的映射。

  Passport SDK的設計與技術細節實例分析

  圖 1 Passport SDK 服務接口設置

  用戶只需在這個服務接口里傳入服務類型和符合規則的參數即可調用對應服務。服務完成后,會通過服務類型對應的回調方法傳遞結果:

  簡單的接口設計會降低接入工作的成本,并使用戶獲得極好的接入體驗。

非常好我支持^.^

(1) 100%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 果冻传媒剧情在线观看| 老司机午夜影院味味| 刘梓晨啪啪啪| 色橹橹欧美在线观看视频高清| 亚洲AV怡红院影院怡春院| 91九色porny蝌蚪| 国产精品玖玖玖影院| 麻豆高潮AV久久久久久久| 色多多污污在线观看网站| 伊人亚洲综合网色| 国产ts调教| 美女被黑人巨大进入| 无颜之月全集免费观看| 6080YYY午夜理论片在线观看| 国产精品久久久久久AV免费不卡 | 69久久国产露脸精品国产| 国产精品99久久久久久宅男AV| 亚洲AV久久无码精品蜜桃 | 最近中文字幕2019国语4| 国产精品色吧国产精品| 欧美激情精品久久久久久不卡| 亚洲欧美另类无码专区| 被肉日常np快穿高h| 久久精品电影院| 午夜福利体验试看120秒| jazzjazzjazz欧美| 久久精品无码成人国产毛| 午夜亚洲WWW湿好大| 超大号黑吊magnet| 老师你奶真大下面水真多| 亚洲精品网址| 国产成人免费片在线视频观看 | 免费国产足恋网站| 亚洲日本天堂在线| 国产精品高清视频在线| 全肉高H短篇合集| 最近的2019中文字幕国语版| 国精产品999一区二区三区有限| 日日操夜夜操天天操| bl撅高扒开臀缝哦| 久久精品亚洲牛牛影视|