BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Node.js 进入移动领域: StrongLoop 推出开源的 mBaaS

| 作者 Zef Hemel 关注 0 他的粉丝 ,译者 吴海星 关注 0 他的粉丝 发布于 2013年9月24日. 估计阅读时间: 8 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

之前推出即开即用企业版Node.js的公司StrongLoop今天推出了一款新产品-LoopBack,这是一个开源的移动端后台即服务产品。

移动端后台即服务把完整的后台方案做成拿来就用的组件,提高了后台开发的抽象水平。后台即服务所包含的服务通常有:

  • 用户管理 (注册、登录、授权)
  • 数据存储
  • 分析

尽管后台即服务的服务已经有很多了,比如FirebaseParse,但都是托管式方案,要把数据放在他们的数据中心上。StrongLoop的LoopBack可以部署到你自己的基础设施上(LoopBack自降生之日起就支持六种云服务:AmazonHerokuCloud Foundry红帽子的 OpenShiftRackspace 云Cloud9 IDE),从而保留了所有数据的访问,并可以做定制的修改和补充。

除了宣布推出LoopBack,StrongLoop还宣布他们从沙斯塔创投和启明创投筹集到了800万美元的风险投资,以及伊萨克 罗斯加盟成为该公司的CEO。

下面是InfoQ跟StrongLoop的新 CEO伊萨克 罗斯的对话。

您的介绍视频 里提到 LinkedIn 是用Node.js 为移动端构建后台的范例(还有其他一些公司)。StrongLoop跟这些公司有直接合作吗,或者是受到启发做跟他们类似的事情?

伊萨克 罗斯:StrongLoop 有一个 StrongLoop 技术咨询委员会 ,这是我们的一个论坛,里面的成员都做过大型复杂的Node部署,我们能从具体实现中学到经验、受到启发,他们也可以互相学习,交流思想。我们的很多产品,从StrongNode中经过认证的模块到LoopBack的架构和具体功能,都是出自这个咨询委员会。甚至我们跟Node Inspector 的结合也出自他们,因为所有成员都说:“嘿,你知道这儿没有好用的调试工具。”有些需求我们还没能完成,比如npm能编译二进制模块,而大多数人在自己的生产机器上都没有编译器,所以他们只能编写脚本来完成构建和部署过程。

为什么JavaScript/Node.js 对移动端后台开发来说是个不错的平台?尽管有争议,但在webapp上还可以说能在客户端和服务端共享专业经验/代码。然而大多数的原生移动app都是用JavaObjective-C写的,所以说共享知识/代码是说不通的,或者你们主要是对准移动web

伊萨克 罗斯:你说得对,是面向移动 web 和混合 (比如 PhoneGap) 应用程序,在客户端和服务端共享代码非常棒。

但事实证明大多数开发人员都了解JavaScript,它是一门优秀的脚本语言。运行速度快,开发效率高。在编写移动应用时,为了优化速度、节省带宽和降低耗电量,真的需要精心细化过的后台API,只推送和拉取用户当前交互所需的数据。如果把整个客户记录都拉过来,就会浪费人们的移动资费,所以应该只把屏幕上的几个字段 填充上,当用户滑动或按下按钮进入下一屏时,才加载下一屏的数据。这种级别的粒度表明你要不断地创建后台API并定制它们。还要尽可能把数据的计算和获取/排序/揉合推到后台,因为这些工作在后台做效率更高。

所以要用高效的语言编程,写代码快,运行迅速,伸缩性好,还有你已经知道的。对于大多数移动应用开发人员来说,不管他们是用Android Java、Objective-C编程,还是用JavaScript ,JavaScript就是这种语言。后台代码写得越快,就能腾出更多的精力放在前端交互上,而这通常是人们评判一个app的标准。从我们得到的反馈来看,选择Node的人就是因为它快(所谓快,是指它运行快,但更主要的是用它开发快)。

你可能觉得作为一门语言或体系来说,Node还不成熟,但这种情况变化很快,并且我们成立StrongLoop实际上就是为了催熟Node。这里有很多我们试图解决的问题:

  • 模块体系的导航,并且不知道哪个模块又好又可靠… 现在我们会对模块进行验证并在背后支持他们
  • 工具……就像对Node Inspector做的一样,我们在更好的工具上投资,以提高开发者的工作效率-部署和伸缩……StrongNode 有集群API和集群管理,我们将继续为这些问题创建开放的工具。
  • 错误跟踪……Bert上周展示了他做的原型,经过改进的 Node出现错误后更容易追踪。
  • 基于事件的流程控制太难……我们已经集成了 Q 和 Async,可以实现不同风格的流程控制,并且Bert的任务建议又把这个向前推进了一步。

所以说,凭借着有成千上百万了解JavaScript的程序员,并且它学起来也很容易,Node将逐渐成为世界级的编程环境。

mBaaS思想的本质是一个或多个即开即用的组件。它本质上是一个软件“成品”,比如在理想情况下不需要自己修改。跟其它技术相比,用Node.js写能给LoopBack的用户带来什么好处?

伊萨克 罗斯:你说得对,通常都是即开即用的API。然而大多数 mBaaS 都创建了对那些即开即用功能进行扩展的办法,都承认开发人员通常需要定制这样一个事实(比如 Parse 调用这段“云代码”)。有意思的是几乎每个mBaaS 都允许用JavaScript或只用JavaScript做这种扩展,这更加表明JavaScript 是既成事实的移动端后台语言。

LoopBack酷在把这一想法带到了另一个层面。给你的是软件组件“成品”,但你还能用庞大的强力体系社区中的40000多个node组件扩展它。而且LoopBack是建立在社区“标准”上的,而不是我们独门独派的东西,比如你需要用新的认证方式来获取数据,我们用的是Passport,所以你可以用任何一个Passport的插件实现那种方式。如果想加个Express插件,用LoopBack也能处理得很好。

之前在开发的时候我们跟一个企业架构师聊过,他管这叫“组合”能力。他想要混合并匹配组件,扩展核心功能,知道软件能跟着他成长,而不是卡死在一个不能发展的软件“成品”上。

另外这是一个很强的保险。如果厂商(也就是StrongLoop)消失了,或者收费太高,你不会卡死在这个mBaaS上。用LoopBack,你可以自己修改代码,或者找个顾问让它朝你想要的方向发展。

LoopBack 是开源的, 可以到它的网站上下载

原文链接:Node.js Goes Mobile: StrongLoop Launches Open Source mBaaS


感谢杨赛对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT