解決方案
到了 2014 年,Hacker News 的 HTML 已成為龐大生態系中脆弱的地基:許多第三方應用程式與專案透過爬取網站標記來讀取文章與留言,而這些標記距離適合行動裝置還很遠。Y Combinator 想現代化前端並加快迭代速度,但若貿然變更 HTML,將會一次破壞所有依賴爬取的工具。
YC 的做法是在動到呈現層之前,先將資料本身作為獨立產品發布。2014 年 10 月 7 日,它宣布與 Firebase(YC S11)合作打造官方 Hacker News API,於 hacker-news.firebaseio.com 近乎即時地提供網站內容,並在 Hacker News 的 GitHub 帳號上發布文件與範例。Firebase 開箱即用的 iOS、Android 與 Web SDK,加上 REST API,讓開發者無須重建技術堆疊即可切換。
時序安排正是重點:這項公告讓生態系在 YC 設定的 10 月 28 日目標日期前有整整三週的緩衝期,屆時將推出新的渲染引擎,仍由 Arc 驅動,其更乾淨的標記將讓前端得以加快迭代,並終於讓 Hacker News 完成行動裝置最佳化。由於對多數用途而言,API 嚴格優於爬取——近乎即時的更新、持續維護的 SDK、無需脆弱的 HTML 解析——轉換是升級而非苦差事,網站也能在不挾持使用者的情況下改變呈現方式。
此舉被視為對生態系的照護:Hacker News 討論串當天獲得 1,714 分與 298 則留言。API 上線時為唯讀,日後計畫透過 OAuth 存取每位使用者的私有資料,YC 並將此歸功於其軟體團隊——kogir、dang 與 sctb——共同打造。
達成了什麼
先發布資料契約:一個官方、近乎即時、嚴格比爬取更容易的 API,並在破壞性變更前提前通知
為何奏效
將資料與呈現解耦,意味著前端可以改變,而不會破壞任何取用內容的人。
近乎即時的 Firebase 同步搭配持續維護的 SDK,讓 API 嚴格比爬取更容易,因此採用是自願遷移,而非被迫轉換。
在標記變更前宣布固定的三週緩衝期,讓每個應用程式都有截止期限與提早行動的理由。
維持相同的 Arc 引擎,只改變輸出標記,降低了 API 與網站彼此脫節的風險。
可借鏡之處
若要改變他人所建構的平台,先抽出資料契約,使其嚴格優於它所取代的權宜做法,並公布破壞性變更的日期,讓使用者自行遷移。
後續發展
API 同日於 hacker-news.firebaseio.com 上線,為唯讀,附有官方 iOS、Android 與 Web SDK 以及 REST API,YC 表示日後可能透過 OAuth 存取每位使用者的私有資料。Hacker News 的公告於 2014 年 10 月 7 日獲得 1,714 分與 298 則留言。該文章將 10 月 28 日設為切換至新渲染引擎的目標,以便在生態系有時間轉換後,將標記現代化並完成行動裝置最佳化——API 被定位為促成這項變更的推手,而非目的本身。
追溯依據
參考來源
- Hacker News API Y Combinator Blog · blog.ycombinator.com ·
- Hacker News discussion: Hacker News API Hacker News · news.ycombinator.com ·