owned this note changed 3 years ago
Linked with GitHub

From KKBOX Open API to JavaScript SDK - Vincent Chiang

歡迎來到 JSDC 2018 共筆 :mega:
共筆入口:https://hackmd.io/c/JSDC2018
手機版請點選上方 按鈕展開議程列表。

另外點選筆記中的 符號就可以直接對那個段落補充或留下意見哦!

tags: jsdc2018

Slide: http://slides.com/zaoldyeck/sdk-building-principles

過去大家只專注在 IOS, Android, PC, 等等傳統平台。
但現在 KKBOX 開始著眼於其他 IoT 設備。

KKBOX 是軟體工作,以軟體公司思維思考

Internal API -> Restful service

OpenAPI

  • 全世界都可以找到
  • 想要更多功能會跟 KKBOX 說

接不到就會自己放棄!

(PS 過去跟其他廠商合作時,常會被很多廠商的需求搞垮,因此開始從 Internal API 走向 Open API 之路)

Why developers like SDK

  • 開發者很懶
  • 處理複雜認證流程
    • 例如 取得 access token 需要 hash/MD5
  • IDE Autocomplete

那麼該用什麼語言當作開發 SDK 的語言呢?

  • JavaScript 在各類型 Client 都有 solution
    // 目前 JavaScript / Python 在 github 上並駕齊驅XD

SDK Principle

化零為整

  • 把 Endpoint 相關的封裝成一個 Class
  • 用屬性 set ID

化繁為簡

  • 將重複瑣碎的動作簡化
    • Access Token 都需要塞 header
    • territory 語系通常在 App 啟動後就不會改變
    • 每次都要帶入請求,但可透過 class 屬性設定
  • 為何 API 不能做到? 因 API 是 stateless

化無為有

  • SDK 可實現 API 沒有的功能
  • 不能牴觸 API 原來的設計理念
    • 例如原本 API 有分頁,就不應該做一個 fetchAll 拿到幾十萬筆資料
  • Open API 不能取得音檔,但可以透過 Web Widgets 播歌

Testing by Mocha

監控分兩面

  1. inside
  2. outside
    • 例如網路出問題、回應速度太慢
    • 確保服務品質

Documentation by ESDoc

寫文件有兩個訣竅:

  1. 要提供 url 指向對應的 class
  2. 要提供詳細的 example 講解怎麼開始、怎麼使用、輸出為何

版號規則

  • New Product ==> 1.0.0
  • Patch release ==> 1.0.1 改第三碼
  • Minor release ==> 1.1.0 改第二碼
  • Major release ==> 2.0.0 改第一碼

Marketing

透過 showcase 行銷

Select a repo