Skip to content

Instantly share code, notes, and snippets.

@numbbbbb
Created February 18, 2016 01:43
Show Gist options
  • Save numbbbbb/4f0d0168e31381a9708d to your computer and use it in GitHub Desktop.
Save numbbbbb/4f0d0168e31381a9708d to your computer and use it in GitHub Desktop.

用 Parse 来做后端一直都不是个明智的选择

不知你最近是否有听说 Facebook 打算关闭不久之前收购的一个 Baas(Backend as a service) 平台 —— Parse. 很多开发者都为此感到很失落,甚至可以说是感觉被 Facebook 背叛了。我在 Twitter 上发了一张屏幕截图,是有人在 Parse 关闭之前截的,对这件事儿进行了很好的说明。

我都不需要特别的强调, 他们已经这么做了。成千上万的开发者信任我们。 你可以从他们的图中的这种表述看出来为什么开发者会觉得受到了背叛。想不通怎么还有人明明知道 Facebook 可能会随意的关闭服务,却在继续用他们的 React Native, React JS, HHVM, Relay 这些技术?

当然,这些都是开源的所以开源社区可以接管,但是对于开源项目而言,维护者和企业级后援都非常重要。Facebook 已经证明了我们无法信任他们。但这些事情在曾经使用过 Facebook API ,或者任何第三方社交 API 的开发者看来都不会太过惊讶。我晚一点会展开谈一下。现在让我们先暂时改变目标,谈一谈房间里的另一只大象 —— Twitter,特别是 Twitter Fabric,它现在拥有 Crashlytics 并且已经由 Felix Krause 完成了很多出色的整合工作。

但是要了解 Twitter 过去是如何对待它的开发者社区的, 我想我们应该谈谈一个名叫 Meerkat 的App。我保证待会会回来接着说 Parse 和 Facebook,但这个故事和他们如出一辙,所以先忍一忍。

Meerkat

一点小历史: 我住在德州的奥斯汀,所以基本上每一年的 SXSW (德州的一个以独立音乐,电影,创新交互为主题的集会) 我都能坐在那些在接下来的一年能大红大紫的创业公司发布会的前排。Twiiter,Foursquare,GameSalad,甚至是 Four-Hour Work Week,这些公司都是在 SXSW 正式启动的。他们是比较成功的一部分,但每年成千上万天真的创业者们出现在奥斯汀展示他们的产品,希望能够通过集会的人气开始腾飞。在2015年在 SXSW 上有一个独一无二的赢家 —— Meerkat。

Meerkat 基本上是一个基于 P2P 技术的直播平台来让人们通过手机直接发送直播流给其他用户,它像风暴一样席卷了 SXSW。去年在奥斯汀的街上走你会能看到 Meerkat 的文化衫到处都是。每一个人都在直播演唱会,SXSW 的活动,他们的午餐,或仅仅是他们正在做的事情。然后突然,一切都停止了,因为一个非常特别的原因:

在 Meerkat 发布的高峰, Twitter 突然撤销了 Meerkat 的 API 的权限, 并且仅提前两个小时通知他们.

如果你熟悉 App Store 的流程你应该能明白这是何等严重的问题,即便 Meerkat 的人重写整个 App 使其不依赖 Twitter 的 API,他们也不可能在两个小时之内让这个 APP 被 App Store 审核通过... 事实上很可能需要3个星期或更久。

个人来讲我并不是特别震惊, 但有很多人好奇 Twitter 为什么这么做... 是否是 Meerkat 违反了 API 的使用规定? 还是他们作了什么违法的事情?

然而, 并不是...

事实证明 Twitter 决定阻挠这个近些年来基于 Twitter 平台的最成功的 APP 的全部原因,是他们有一个自己的类似产品,叫 Periscope。我并不想给出它的链接。

然后我们就看到了, Twitter 再一次希望开发者社区信任的的声明, 哎……

Parse

看吧,我说过要讲回 Parse 的.

把 Facebook 和 Twitter 看做是同一个名为"社交媒体"的硬币的两面,对我而言信任任何一方都意味着同样的事情。当我想一个科技公司是如何走向未来的时候总是重复那句口头禅,“跟着钱走”。 这可以很好的说明一些大公司在未来会如何做, 特别是一些已经上市的(Twitter 和 Facebook 已经上市)。 美国的上市公司需要就季度性的财报来回应他们的股东, 有的时候就会伤害到他们的客户和合作伙伴。 当我看到 Parse 有如此大的免费额度,让我非常担忧。这样看起来99%的 APP 永远都不需要付费, 即便要付也是一点点。 那 Facebook 对于让免费用户大肆使用 Parse 的动机是什么呢? 我想答案其实很简单,他们想要你的数据,但后来证明没什么价值。 所以他们决定 Parse 不再值得继续投入。 他们无法通过把免费的后台服务提供给成千上万的开发者盈利; 所以他们决定关掉它。 用 Facebook 自己的话说:

我们很骄傲我们曾经能够帮助很多的人们构建伟大的 Apps, 但我们需要专注于把我们的资源投入在其他地方。

翻译过来就是:“你没有为我们赚足够多的钱”

Facebook 的所有利润都来自于广告,就像 Twitter, 以及已经超越了苹果,全世界最有价值的公司—— Google。事实上现在仅有一家不把广告作为主要收入来源的平台提供商,那就是苹果。

跟着钱走

我刚才在 Twitter 上发了这条信息:

人们问我如何替代 Parse:如果你没有自己实现和部署后端代码, 那你的后端就太平不了。 —— Jameson Quave(@jquave)

这是真的,你真的不能盲目地把你的后台交给这些社交媒体公司。 你必须用“跟着钱走”去想合作方的动机。如果他们的动机不是通过提供给你很好的服务来满足自己的盈利,这就代表他可能不会坚持太久。 如果你是创业公司的 CEO ,你也可以用这条准则来分析一下你的业务。当你和一个人一起工作的时候,你必须确定你和他的利益是一致的,不然总会出现问题。这适用于员工,联合创始人,合伙人和一些外包团队。

Facebook API

回顾早些时候的 Facebook API, 你可以很容易的获取用户的联系人列表。这导致了很多来自 Facebook 游戏的垃圾信息,以及开心农场的崛起。但 Facebook 决定他们不要这样,于是就收回了这个权限,这对很多 App 都造成了伤害,包括 Zynga 的股价。说真的,看一下这对 Zynga 的股价造成了什么:

如果你的业务依赖于 App , 那你的后台就是非常重要的,需要你绝对控制的资产。像 Salesforce 和其他的一些基于云服务的企业成长到现在的规模花费了将近十年的时间,但直到今天他们中的大多数仍然在用一些现场部署的软件。原因就是对一个运转良好的业务来说,自己拥有并控制一切是最关键的任务。虽然这增加了维护成本,同时初始部署成本也不小, 但如果没有这样的控制,你的业务依赖于你对那些名声不好还总想挖掘你数据来为广告服务的人的幻想。你希望这些人控制你的后台?你有多信任 Facebook, Twitter 和 Google?

构建属于你自己的后台

提供给你的 App 一个稳定的,可控的后台的唯一办法就是你亲自去实现。我知道这听起来有点难,但其实如果用 Ruby on Rails 或者 NodeJS 来做一个驱动你 App 的简单后台并不是那么难。 坦白的说,Parse 基于 Javescript 事件驱动的后端无非就是在 express 中写一个 NodeJS app,使用一些 node 的模块实现简单的 API 发布, 然后把所有数据存到 MongoDB 中。 如果这听起来很难的话就花几个小时在网上看一下教程,你会意识到这些事情有多简单。或者,你可以雇我的公司,我公司很擅长做这些。

如果你真的雇了第三方来构建你的后台,确保你拿到所有的代码以在各种类型服务器上跑起来所必须的工具。用 Docker 来管理 app 对环境的需求是一个不错的选择,还有一些类似 Heroku 的服务,让部署 Rails app 很简单。

有个有趣的事儿,在我写这篇文章差不多写了95%的时候,我讽刺 Twitter 的话嵌入进来后搞乱了所有得格式让我不得不重新排版。^_^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment