noBackend:前端优先的开发模式
来源:互联网 发布:epub转azw3软件 编辑:程序博客网 时间:2024/05/22 15:34
在前不久才结束的 Front-Trends 2013 Conference上, minutes.io创始人Gregor Martynus提出了一个有趣的议题——“ 看哪,没有后端!”该议题提出的建议与传统情况下、优先后端建设的原则恰恰相反。随后InfoQ美国对他进行了采访,CSDN编译如下:
问:noBackend(无后端)意味着开发Web应用时不再关注后端开发,为什么说这是我们应该追求的东西——它有什么优势吗?
Gregor Martynus:长久以来我们为使应用开发变得简单而做了许多工作,但尽管如此,在我们想要开发应用时,仍然会优先考虑后端架构设计:我应该采取什么技术、哪种数据库。应用的设计过程被“后端世界”所约束,而我认为,不应该再这样了。我认为,从用户的角度来看,每一个应该的设计与体验都应该是独一无二的,他们不会关注“应用是怎么运行的”。noBackend试图通过前端驱动来影响设计流程,它首先默认“一切皆可实现”,然后找到这个实现。
问:少后端(less-backend)应用真的合适吗?它的约束在哪儿?
Gregor Martynus:在说noBackend时,我并不是真的建议应用应该放弃所有后端,我承认这个词语确实令人困惑,但仍然达到了吸引人眼球的作用。
我所说的noBackend是指:你不应该在设计的时候操心后端应该如何设计,就像你没有想过浏览器做得到什么又做不到什么一样。我们可以使用JavaScript填补两者之间的空隙,把和服务器交互的事实隐藏在其后。前端开发者不再需要关心,这大大解放了他们的能力。
从技术角度来看,为了达到平稳的前端开发体验,我们需要掌握以下两种技术:
- CORS:为了实现跨域名Ajax请求;
- 异步代码:可以使回调、事件或者约定(promise )。
问:你的网站上提到了 dreamcode,它是指什么?
Gregor Martynus:我们在开发Hoddie时,正是从面向前端开发者JavaScript API开始,这正是我们所最关心的。我们不管后台实现有多么复杂,但是面向用户的前端必须尽可能简单。最终我们决定放下所有教条开始思考:“怎样才能使用最少的JavaScript代码来实现用户注册功能?”我在 网站上列举了很多用例。
其中不得不提到jQuery,它为我们提供了强大而且简单的API。我相信这也是它成功的首要原因。
另一个dreamcode非常酷的原因在于,每个开发者都能做到。不论你有多少开发经验,都无碍于空想代码。事实上,如果你是一名新手,可能相比脑中充满的高级开发者更有优势。
而dreamcode正是一个引导你应用noBackend开发设计模式的工具。通常情况下,你需要告诉前端开发者自己需要什么,比如用户账户、发邮件、上传等等功能。然后后端工程师董事开发开发,并返回一个RESTful API,之后前端开发者可以使用jQuery Ajax方法来调用、开发。但是在noBackend理念中恰恰相反,前端开发者通过dreamcode确定用户真正的需求是什么,它既是前后端开发者的接口,双方都基于它反向开发。
对于后端开发者来说,dreamcode是:
- BDD/TDD的又一个别名;
- RESTful API的继承者,但是在定义时更简单、遇到变化时更灵活。
问:noBackend通用后端是否会带来安全、隐私问题?比如说,如何防止用户使用jQuery API来向他人发送垃圾邮件?
Gregor Martynus:不会的,noBackend定义了最简单的邮件发送方法。不用说,对于发送邮件、货币支付等等方面都需要尽可能的安全,只是我认为这不需要在前端上体现出来,它只需要尽可能地简单,阻止垃圾邮件发送的逻辑应该设计在后端。比如说,你可以不允许未注册账户的游客发邮件,或者仅允许没10分钟发一次邮件。后端开发者对于解决这些问题有充分的经验,他们很擅长这些。而前段开发者不需要操心这些事情,这会花费他们太多时间。
如果你打算建立下一个Heroku,忘了后端的难处吧,只需要制作一个精美的网页,然后坐等收钱。
问:你在网站上列举的一些noBackend服务(比如remotestorage.io和hood.ie)提到了它们能够脱机工作,而当网络恢复时再度同步。主要是为移动应用考虑的,还是说有更广泛的关联?
Gregor Martynus:脱机工作并不是为了让用户脱离网络使用应用,它是为了解决延迟问题,并提供更优秀的用户体验。以minutes.io为例,它会立刻存储你所做的一切,从你正在打得字到浏览器缓存,然后通过第二个进程同步到服务器。
问:这算得上应用开发的新方式吗?或者仅仅对开发“noBackend”应用有效?
Gregor Martynus:我认为新技术都是为特定的应用而生的,它的不同之处在于,尤其适合应用逻辑集中在前端、注重用户体验的程序。
它不过是开发者尤其是前端开发者应该理解的又一个工具,noBackend应该是一种能够充分释放他们能力的解决方案,允许前端开发者在无后端的情况下进行应用开发。
注:在 noBackend网站上, 罗列了一系列后端解决方案,能够帮助你开始应用noBackend模式开发。
原文链接: infoq.com
- noBackend:前端优先的开发模式
- 基于yui的前端"团队开发"模式
- 前端web开发的MVC模式
- 前端web开发的MVC模式
- 前端web开发的MVC模式
- 前端web开发的MVC模式
- 【Web前端】:对前端开发模式的思考
- 【Web前端】:对前端开发模式的思考
- 前端开发模式
- web前端开发模式
- 使用VirtualView渲染的前端UI组件开发模式
- 使用VirtualView渲染的前端UI组件开发模式
- 前端开发的常用工具
- 前端开发的常用工具
- 前端开发的常用工具
- 前端开发的职业规划
- 前端开发的七宗罪
- 前端开发的经验
- android换肤
- 使用hadoop和hive来进行应用的日志数据分析
- 移动互联网产品设计的五个核心要素
- Linux中报找不到xxx.so时的解决办法
- JavaScript+技巧与高级特性
- noBackend:前端优先的开发模式
- oracle数据字典及视图
- PDF添加书签
- 中国移动开发者社区 的账号和地址
- LibGdx--在LibGdx中使用Toast
- Sicily 1135 飞越原野 (SOJ 1135) 【BFS 广度优先搜索】
- JavaScript 如何给js 空对象动态添加未知属性和值?
- 云里雾里的重载,覆盖和隐藏
- 配置tomcat项目访问路径