最近,InfoQ 中文站就前端趋势大会上被人提及的 noBackend 概念进行了跟踪。这种概念提倡让前端就可以完成一个完整应用的开发,将后端完全转化成接口给隐蔽起来。
根据阿里 UED 团队王涛同学的解释:
“noBackend 并非是一种新技术或是一种新架构,而是一种新的 web 开发模式。我们经历过前后端分离的开发阶段,就是后端同学提供数据接口,让前端同学调用来实现页面逻辑,其实在这个阶段,就已经奠定了 noBackend 的架构基础……业务开发的重担会落在前端层面,而多条产品线,甚至整个公司的产品都可以共用一套后台接口服务平台。”
很多前端听说这一概念之后都感到很兴奋:如果只依靠前端就可以独立完成产品的研发,那么前端在团队中的价值无疑会大幅提升。同时,noBackend 模式对前端开发提出了更高的要求,这意味着做前端成了一个更有技术含量的工作。
在以前,前端要么附属于设计,要么附属于产品。在很多网站,前端只是把 PSD 变成 HTML 的一道工种。写 CSS 的工作,在很多后端看来,根本不是开发。
Ajax 技术到来之后,网站能做的事情更多了。随着 JavaScript 能做的事情越来越多,前端对产品的影响力也逐渐上升。可以说,JavaScript 技术的成熟度决定了前端在团队中的话语权。
虽然如此,我们还是发现,并不是所有的前端都喜欢 noBackend 这个概念。
豆瓣前端团队负责人张克军,他所站的角度不是前端的角度,而是工程的角度。
“我对所谓“noBackend“持反对意见,这种叫法很哗众取宠,个人不喜欢。
所谓“noBackend“不过想说,前端有个完整的“MVC 框架“(或类似概念框架)负责产品全部的展现逻辑和数据交换。后端只提供纯粹的数据服务。
对于规模足够大的产品来说,这种模式问题很多:
- 为了给搜索提供入囗,前后端最好是共用模板。这样很多 server 端成熟的模板系统就不能用了
- 浏览器(包括手机浏览器)的兼容问题,坑太多
- 把大量计算放到进浏览器里实现影响体验。手机浏览器明显不适合这样做
- Javascript 不安全
- 这不是未来。未来应该是 web components 这种基于组件的开发思路
- 这也不是重点。当前重点应该是利用前端技术更好解决产品使用体验跨设备、跨平台布署的问题
前端架构上应该保持简单,合理利用后端的计算能力。不会刻意追求全 JS 技术堆栈的方案。”
是站在前端的角度,还是站在项目的角度?是站在团队的角度,还是站在工程的角度?
用 @gaosboy 的话总结来说就是:从前端角度谈 noBackend 就是谈政治。站在整个网站的角度,看看开发成本最低,最合理的方式吧。
本文作者简介
杨赛(@lazycai),InfoQ 中文站编辑。到处串门的互联网信徒,相信规则的力量。
InfoQ 微信周二专栏作者招募中!邮件 editors@cn.infoq.com 了解详情!
***********************************
本文来自 InfoQ 微信公众账号:infoqchina
1、回复“今日新闻”,查看今天更新的新闻;
2、回复“今日英文”,查看今天英文站的更新;
3、回复“文章 + 关键词”,搜索关键词相关内容;
4、回复“QCon”,了解 QCon 大会相关信息;
5、回复“活动”,了解最近 InfoQ 组织的线下沙龙;
6、回复“架构师”,获取《架构师》下载地址;
7、回复“投稿”,了解投稿和加入编辑团队的流程。
***********************************
评论