用Parse作后台?这是个坏主意
可能你还没有听说过,Facebook正打算关闭Parse——这个它不久之前收购的BaaS服务。很多开发者感到有点失落,甚至觉得Facebook背叛了他们。我在Twitter上发布的这个别人在Parse关闭之前首页的截图,充分地说明了一切:
:/ pic.twitter.com/ctoxrvTLYx
— Jameson Quave (@jquave) January 29, 2016
我不需要再在上面突出任何重点,他们已经这样做了——成千上万的开发者信任我们。你可以从他们图片中的这种说辞看出为什么开发者们觉得自己被背叛了。既然已经知道他们可能会随机地决定停止对这些技术的支持,还有谁会继续使用React Native, React JS, HHVM, Relay, 或者其他Facebook的技术?
诚然,这些项目是开源的,很多开源社区可以接管它们,但是开源项目需要维护者,而且能有企业的支持是一项巨大的福音。Facebook的事实证明了我们不能相信它们,但这对于那些过去使用了Facebook的API或者其它第三方社交媒体API的人来说,这应当并不那么令人惊讶。相关的原因我稍后再作解释,现在我们先换一个话题,来说说另一件不容忽视的事,Twitter…重点是是Twitter Farbric,现在的组件包括有Crashlytics和其他许多由Felix Krause完成的很棒的工作。
在这之前我想我们应该先谈一会一个叫做Meerkat的App,而不是去理解Twiiter过去是如何对待它的开发团队的。我保证,稍后就回到讨论Parse和Facebook的话题上来,但下面的故事是与之相关的,所以请耐心听我讲完。
Meerkat
提一点背景故事:我住在德克萨斯州的奥斯汀,这意味着每年的SXSW大会我都能占到一个前排座位,靠近那些在下一年想要做大的初创企业。Twiter, Foursquare, GameSalad, 甚至Four-Hour Work Week都出现在了SXSW。它们是这其中的一些较大的成功者,但更多的是每年那些出现在奥斯汀的创业者,它们瞪大着眼睛,展示它们的作品,希望能够在大会上受到欢迎。2015年,毫无疑问SXSW的胜者是Meerkat。 Meerkat是一个实时流媒体的P2P平台,可以让人们直接从iPhone上传输流文件给其他用户,它轰动了整个SXSW。去年,只要在奥斯汀围着SXSW走走,你会看见到处都是Meerkat。大家全都在传输在线音乐,SXSW大会,他们的午餐,或者只是他们正在做的任何事。然后,突然一切都停止了,因为一个特别的原因:
在Meerkat的发布会正处于高潮时,Twitter在通知后的仅仅两个小时,立马把API的权限拉低。
如果你熟悉iOS的App Store的处理程序的话,你应该能理解这是个多么严重的问题。想想,即使Meerkat的伙计们能够以某种方式不依赖Twitter的API重写整个应用,他们也不可能在两小时之内重新提交上架……事实上,这大概得花3个星期的样子。
在Meerkat的发布会正处于高潮时,Twitter在通知后的仅仅两个小时,立马把API的权限拉低。
就个人来说我并不是那么惊讶,但是许多人都很好奇为什么Twitter会干出这样的动静,他们有没有违反API协议中的条款?他们的行为是不是违法了?
嗯,不是这样…
事实上,最终发现原因是Twitter决定打压这个年度最成功的基于Twitter的App,是因为他们在自己流水线上有了竞争者,它叫Periscope,这里我不想给出它的链接。
所以,在这里,Twitter又一次请求开发社区的信任。Sigh...
Parse
你看,我跟你说过我们会回到Parse这个话题吧! 由此看来,Twitter和Facebook本质上就是社交媒体这一枚硬币的两面,对我来说,看起来信任他们中的任一个都可能会有相似的后果。每当我疑惑一个技术公司在未来如何发展,我总会重复那句真理,”Follow The Money”。这句话大致告诉了你一个大公司在未来要如何才能做好,特别是对于公开上市司而言(Twitter和Facebook都是)。美国的上市公司用类似于盈馀季度报告答复股东,有时候还会损害他们的客户和合伙人的利益。当我看到Parse有着如此高的『免费层级』的门槛时,我着实对他们感到担忧。看起来似乎99%的应用(甚至更多)根本不会越过那个门槛,即便他们超过了,他们也只需要支付少量的钱。对于他们的开发工具,尤其是BaaS服务,Facebook实际上的动机是什么?我认为答案很简单,他们想要你的数据。然而,最终他们发现这些数据毫无价值,所以他们觉得Parse不再得他们浪费任何时间了。他们给成千上万的开发者免费提供后台,却不能从中获得利润,于是他们关闭了Parse。用Facebook的话来说: 能够帮助你们如此多的人开发自己的移动应用我们感到很自豪,但是我们需要把我们的资源集中到其他地方。 言下之意:『你们没有给我们带来足够的钱』
Facebook完全靠广告获得利润,就像Twitter和Google一样,Google现在已经超过了Apple,成为全世界市值最高的公司。实际上,在主要的平台供应商中,仅有一个的大部分利润不是来自于广告,那就是Apple。
Following The Money
今天早些时候我发布了这条推文:
『人们问我如何在他们的代码中替换掉Parse:如果你不自己编写维护你自己的服务器代码,你的后台永远都是危险的——Jamson』
Quave (@jquave) February 2, 2016
的确是这样,你真的不能如此盲目地信任这些社交媒体公司,把你的后台交给他们。你得以『Follow the money』的原则来思考这些相关集团的这么做目的。如果他们给你提供很好的服务不是为了从中获得收益,那么他们的服务不太可能坚持太久。如果你是一个初创公司的创始人或CEO,这同样是一个分析你自己的事情的好方法。当你和其他人一同工作时,你必须确定他们经济上的动力和你的相同,否则你们总会有嫌隙产生。这个原则对于雇主、联合创始人、创业伙伴和提供商同样类似。
Facebook的API
早些时候,你可以通过Facebook API很容易地获得用户的联系人列表。这就是导致大规模来自Facebook游戏的垃圾邮件的原因,当然还带来了”Farmville”游戏的热门。但是Facebook最终决定他们不能那样做,于是他们取消了一些那些对会对App带来不利影响的权限,同样拉低了Zynga的股价。我是说正经的,来看看它们对Zynga的股价做了什么:(图)
如果你的公司是依赖于一个应用程序,那么你的后台就是一件极其重要的事,你必须能完全地掌控它。像Salesforce和其他以云为基础的公司,它们花费了几乎十年的时间才在成为大型公司的路上取得成功。而且,它们中的绝大多数甚至都在使用本地托管版本的软件。原因就是,在一个运转良好的公司,你会把任何事都当做关键任务。虽然这会带来维护成本的提升,同时也会增加初始部署的成本,但如果没有这样的掌控,你的公司就得依赖于那些挖掘你的数据来提供广告、成日异想天开的靠不住的人。这难道是你想要的控制你的服务器的人?你又有多信任Facebook, Twitter,和Google呢?
搭建你自己那该死的后台
为你的移动应用提供稳定后台的真正唯一的答案就是你亲自搭建它。我知道这听起来很困难,但利用Ruby on Rails或NodeJS写一些简易的API让你的移动应用变得更强大,这真的没有那么困难。坦白的说,Parse的后台基于Javascript的事件,和自己写一个一个利用express以及获取一些用来作简易API分发的node模块,并用MangoDB数据库储存所有东西的NodeJS应用并无二致。如果你认为这听起来有些困难,你只需要花几个小时阅读一下在线的教程,你就会明白自己动手做所有的这些有多容易。或者,你也可以请我们公司帮你,我们是专门干这个的。在结尾羞耻地插个广告
如果你的确请了供应商帮你搭建自己的后台,请确保你能得到源代码和一些在你需要的任意服务器上加载它所必须的工具。Docker就是一个很好的能装载所有你的应用所必须的运行环境的方式,另外,一些服务平台,比如Heroku,可以帮助你轻松地部署Rails应用。
有趣的事:在写这篇文章写到大约95%的地方的时候,我那搞笑的Twitter嵌入组件破坏了我的整个版面,于是我不得不对整个文章重新排版^_^