解法
到 2014 年,Hacker News 的 HTML 已成为大型生态系统的脆弱基础:许多第三方应用和项目通过抓取网站标记来读取故事和评论,而且标记远非移动友好。Y Combinator 想要现代化前端并更快迭代,但若直接更改 HTML 会立即破坏所有依赖抓取的工具。
Y Combinator 的举措是在呈现层之前将数据作为产品发布。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 线程同日获得 1714 分和 298 条评论。API 以只读模式启动,计划稍后提供对用户私有数据的 OAuth 访问,YC 称赞其软件团队——kogir、dang 和 sctb——构建了它。
What it achieved
先发布数据契约:一个官方近实时 API,比抓取更简单,并在破坏性更改前通知
为什么有效
将数据与呈现分离,意味着前端改变不会影响内容消费者。
近实时 Firebase 同步和维护的 SDK 使 API 严格优于抓取,因此采用是自愿迁移而非强制转换。
宣布固定三周迁移期,给每个应用截止日期和提前迁移的理由。
使用相同 Arc 引擎而只改变输出标记,减少了 API 和网站漂移的风险。
可以借鉴什么
要改变他人构建的平台,先提取数据契约,使其严格优于替代方案,并公布破坏性更改日期,让用户自行迁移。
后续
API 于同日在 hacker-news.firebaseio.com 上线,只读,提供官方 iOS、Android 和 Web SDK 以及 REST API,YC 表示可能后续提供用户私有数据的 OAuth 访问。Hacker News 公告于 2014 年 10 月 7 日获得 1714 分和 298 条评论。该帖子将 10 月 28 日设为切换到新渲染引擎的目标,以便在生态系统有时间转换后现代化标记并优化移动端——API 被框定为这一变化的推动者,而非目的本身。
从这里,追溯依据
参考来源
- Hacker News API blog.ycombinator.com
- Hacker News discussion: Hacker News API news.ycombinator.com