【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

noBackend:前端优先的 Web 开发

  • 2013-05-24
  • 本文字数:2353 字

    阅读完需:约 8 分钟

在近期举办的前端趋势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 是后端作为服务, Parse Kinvey Beckendles 也是如此,还有一些我考虑可以作为 noBackend 方案的部分开源解决方案,但你得亲自选择他们,或者将其作为备选,如 hood.ie , remotestorage.io deployd.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 )关注我们,并与我们的编辑和其他读者朋友交流。

2013-05-24 11:083710

评论

发布
暂无评论
发现更多内容

参展有礼|华秋电子诚邀您参加2023慕尼黑上海电子展

华秋电子

筑牢三大新型能源基础设施,能源变革的分水岭和路线图

脑极体

新能源

九章云极DataCanvas公司加入中国移动信息现代产业链“十百千万”计划

九章云极DataCanvas

es 笔记二之基础查询

Hunter熊

elasticsearch

会是调用第三方接口那么简单吗?

高端章鱼哥

程序员 前端 接口 系统

为什么负数的补码等于反码加一

xzy

教你如何用Vue3搭配Spring Framework

华为云开发者联盟

前端 开发 华为云 华为云开发者联盟 企业号 6

软件测试/测试开发丨接口测试学习笔记分享

测试人

Python 程序员 软件测试 接口测试 Mock

人脸识别技术在智慧城市建设中的应用

来自四九城儿

倒计时1天 | 诚邀见证“九章云极DataCanvas新产品发布会”!

九章云极DataCanvas

代码随想录训练营 Day02 - 数组(下)

jjn0703

算法

我在中小型项目SuperCell模式实战经验

软件工程师-罗小东

《巫师》系列游戏及《赛博朋克2077》本地化总监 Mikołaj Szwed 将出席 2023 中国游戏开发者大会(CGDC)

CGDC中国游戏开发者大会

本地化 游戏开发 ChinaJoy

IPQ6010 QCA8075 QCN5052 QCN5022 WiFi Embedded Motherboard

wifi6module

IPQ6000 ipq4029

保险业务连续性保障:从测试到生产,混沌平台建设节奏如何把控?

TakinTalks稳定性社区

神级外挂 | 网络性能优化,2个补丁就足够

鼎道智联

人脸识别技术的分类和实现方法

来自四九城儿

我为什么选择多边形架构做为工程的基础思想

软件工程师-罗小东

未来已来!探索AI医疗与低代码开发平台:引领健康浪潮的科技巨潮

不在线第一只蜗牛

人工智能 医疗健康领域 AI医疗

人脸识别技术的未来发展方向

来自四九城儿

C++实现简单的ls命令以及原理

攻城狮Wayne

Spring Cloud 如何引入云原生网关,创新微服务架构

阿里巴巴云原生

阿里云 微服务 云原生 Higress

保姆级教程:带你体验华为云测试计划CodeArts TestPlan

华为云PaaS服务小智

云计算 开发者 软件开发 华为云

让沉寂的数据“活”起来,用友BIP资产云提升港口企业决策效率

用友BIP

港口 资产云

数智时代的守护者:低代码开发平台如何解决AI安全挑战?

快乐非自愿限量之名

AI 低代码 数智时代

一文吃透MAUI、WinUI3和WPF的优势及劣势

这我可不懂

WPF MAUI

通过构建背景图学习CSS径向渐变

南城FE

CSS 前端开发 渐变

【汽车虚拟仿真】VR技术如何加速自动驾驶进程?

3DCAT实时渲染

虚拟仿真 云仿真 汽车虚拟仿真

起风了,泛娱乐企业出海如何正确扬帆?

ToB行业头条

重磅发布 | 博睿数据发布互联网行业精选案例集

博睿数据

互联网 可观测性 博睿数据 One 精选案例

HTML5 游戏开发实战 | 俄罗斯方块

TiAmo

html html5 6 月 优质更文活动

noBackend:前端优先的Web开发_Web框架_Zef Hemel_InfoQ精选文章