noBackend:前端优先的Web开发

在近期举办的前端趋势2013大会上,Gregor Martynus做了一场题为“各位快看,不用后台!”的报告,站在前端的视角谈应用开发,服务端组件只退化到实现浏览器尚不支持的特性,这种方式与传统开发方式截然相反,后者首先要关注应用服务端,然后再利用前端技巧来提升应用。他们还建了一个名为noBackend的网站来深入传播这种理念。

\

为了解更多信息,InfoQ就此采访了Gregor。

\

InfoQ:noBackend编写应用无需关注后端,为什么它如此有吸引力,或者我们可期望从中得到什么,它有什么优势?

\
\

Gregor:我们主要致力于让构建应用的过程变得非常简单,但是,当我打算做一款应用时,我仍得首先满脑子考虑如何处理后端:我将用什么样的技术,什么数据库。构建应用的设计过程仍然受后端的支配和限制。而我认为,根本没必要再这样做,我想,从用户的视角来看,一款应用的设计和用户体验是独特的,没有人关心“它是怎样工作的。”noBackend试图建议以前端驱动的设计过程来反映这种观点,首先“一切皆有可能”,然后工作从此逆袭。

\
\

InfoQ:免后端的Web应用真的可行么?它有哪些限制么?

\
\

Gregor:当谈到noBackend时,我并不主张应用完全不需要后端,我承认这个词有点儿令人困惑,但它确实很吸引眼球。

\

我说noBackend的真实意思是:你不必再需要考虑后端了。你不必像现在这样来区分哪些特性有的浏览器支持而另一款浏览器不支持。我们可以用现有的Javascript来填平这些鸿沟,隐藏它与屏幕背后服务器的真实交互,前端开发者根本不需要关心这些。这点是非常强大的。

\

从技术的视角,为保障前端开发者的体验流畅,我们需要两个东西:

\

1 CORS,用来处理跨域的AJAX请求。

\

2 异步代码,如回调、事件或承诺。

\

这些现在都已成熟了,所以现在我们可以准备开始了。

\
\

InfoQ:你的网站提到dreamcode,这是什么?

\
\

Gregor:当我们开始做Hoodie项目时,我们以面向前端开发者的Javascript API起步,这是我们最关心的。我们并不关心屏幕背后的事情有多复杂,对于用户来说越简单越好。我们决定忽略所有限制甚至想:“好了,我想要注册一名用户,搞定它的最简单的Javascript代码片段是什么。”我已经列举了一些我们网站上的用例

\

一个优秀的例子是jQuery。JQuery很了不起,提供了简单却功能强大的API,我想这是它成功的一大原因。

\

另一件非常酷的是dreamcode:每个开发者都能使用它,不论你的经验有多少,你可以用dreamcode。事实上,如果你是一个初学者,你甚至更加有优势,因为你不必像高级开发者那样考虑之前困扰你的根深蒂固的各种限制。

\

Dreamcode是引领应用采用noBackend方式进行设计处理的工具。通常,你得告诉后端开发者你需要什么,如用户账户、发送邮件、上传等。后端开发者将构建它,生成RESTful API返回给前端开发者,然后前端人员需要使用如jQuery AJAX方法来接通。而替代方案是,前端人员可以通过dreamcode准确的描述应用用户的真实需求,现在dreamcode是前端和后端之间的接口,两端都能依赖它工作。

\

从后端的视角,dreamcode是:

\

1 只是行为驱动开发测试驱动开发的另一种说法;

\

2 REST API的继任者,定义更简单,未来发生变化时更易扩展。

\
\

InfoQ:noBackend的一般性后端安全是怎样实现的?比如怎样避免用户通过JavaScript控制台来使用email API以及产生垃圾邮件骚扰他人。

\
\

Gregor:什么都没有。noBackend只用最简单的方式定义了怎样发生邮件。当然,我非常赞同关注安全,当要发送邮件,或收到支付账单,或者不论什么。我只是认为前端的API并不需要反映出来。它应当超级简单,防止垃圾邮件的逻辑应当放到后端。比如,你可以阻止没有账户的访客发送邮件,或者禁止每分钟发送超过10封邮件。这些问题后端人员解决已经多年,他们很擅长。前端人员并不需要被此困扰,我确信这对他们来说很有价值。

\

如果你要构建下一个heroku,带走后端的所有痛苦,通过提供一个漂亮的精心制作的前端,然后:你就可以拿走我所有的钱。

\
\

InfoQ:noBackend与后端作为服务有什么关系呢?两者观点听起来非常相似。

\
\

Gregor:后端作为服务是一种特殊的noBackend,也是从商业角度对其的描述,当我尝试用noBackend来把它以UX开发者的角度带入讨论中。

\

比如,Firebase是后端作为服务,ParseKinveyBeckendles也是如此,还有一些我考虑可以作为noBackend方案的部分开源解决方案,但你得亲自选择他们,或者将其作为备选,如hood.ie, remotestorage.iodeployd.com

\
\

InfoQ:列在你的网站上(比如remotestorage.io和hood.ie)的部分noBackend服务提到了离线处理和联网同步的能力。这首先对移动应用很重要,或者离线能力有更广泛的实用性么?

\
\

Gregor:离线处理能力不仅能让用户在没有网络连接的情况下正常使用应用,它消除了延迟,因此能提供更奇妙的用户体验。拿minutes.io来说,它能在你操作之后马上存储你的记录,当你输入文字时,存入你浏览器的本地缓存,然后,在秒级的处理后,数据同步到服务器中。

\
\

InfoQ:这是开发应用的一种全新方式,还是只对某些特定范围内应用采用noBackend方式开发应用才有效?

\
\

Gregor:我想任何一种新技术都是为了某些特定种类的应用服务的,这是一种不同的方式,尤其适合大部分逻辑集中在前端的应用,其中用户体验是最重要的特性。

\

这只是开发者应该关注到另一款工具,尤其对于前端开发者而言,noBackend方案对于那些不擅长自己开发后端的人来说是款很好的工具,让他们完全有能力来构建应用。

\
\

noBackend网站上列出了现在能用来创建noBackend风格应用的一些现成的后端解决方案

\

查看英文原文: NoBackend: Front-End First Web Development

\

感谢马国耀对本文的审校。

\

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值