《架构师》2018年4月
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

在AI横行的时代,你为什么还要固守大前端?

作者 狼叔

我对自己的定位是Node全栈,以大前端为主,Node辅助,囊括所有和用户直接相关的开发。我认为这是趋势,我也确实在自身的经历中体验到了好处。目前大前端还没有形成固定模式,还在混乱发展,所以前景是非常被看好的。当收到邀请让我写卷首语的时候,我特别想聊聊在AI横行的时代,你为什么还要固守大前端?

1)大前端还没有天花板

从web1.0到web 2.0,我们其实没太多感知,除了出现了很多Prototype、jQuery等框架,帮我们抹平了浏览器兼容性外,真的没有太多惊喜。至于ria,估计早已经没多少人知道。至于gwt这个Google惊艳的尝试,也慢慢地淹没在记忆里。可能在企业开发领域,对Ext.js还有些许记忆,它自己实现了面向对象机制,它丰富的组件系统,快速开发经历和较好的用户体验,还是非常不错的,但对于组件化,这种探索是远远不够的。它只是面向对象层面对代码的复用。

2014年,前端开始出现Backbone,它是第一个知名的前端mvc框架,从此开始前端开启了划时代的篇章。随后Angular横空出世,从mvvm、ioc,到指令等各种概念,点燃了很多后端开发对前端的幻想。诚然,前端集成了更多的后端思想,这是好事,但从另一个角度考虑,这也是今天大前端发展过快的导火索。

随后React的诞生,借助于Virtual DOM的抽象,真正地实现了组件化,再次将组件化这个概念推向高潮。再说Vue.js,在Angular火的时候,它借鉴了一部分,在React火的时候,它又借鉴了一些,在大家都抱怨前端越来越复杂的时候,它站出来,你想要的特性我都有,而且更简单,它的流行也是可以理解的。

移动端也面临同样的难题,既想要H5的灵活性,又想要有原生App的良好体验。这是鱼和熊掌的博弈,从Native到Hybrid(还是不能满足复杂交互),到基于组件的各种方案React Native/Weex(组件层面跨平台,写法统一,执行最终是原生代码,是折衷方案),它们丰富了端上的开发,也从另一个角度,是前端开发同学让这些创新方案落地。

今天,泛义的前端是涵盖那些熟悉React在做React Native的前端开发的。在很多大公司也都已经使用这种模式很久了,除了降低开发成本外,也拓宽了前端的更多涵盖领域。在未来,应该有更多领域被纳入到大前端概念里。

2)你需要了解更多的架构知识

前端的爆发,说来也就是最近3、4年的事情,其最根本的创造力根源在Node.js的助力。Node.js让更多人看到了前端的潜力,从服务器端开发,到各种脚手架、开发工具,前端开始沉浸在早轮子的世界里无法自拔。组件化后,比如SSR、PWA等辅助前端开发的快速开发实践你几乎躲不过去,再到API中间层、代理层,到专业的后端开发都有非常成熟的经验。

我亲历了从Node 0.10到iojs,从Node4到目前的Node9,写了很多文章,参加很多技术大会,做过很多次演讲,有机会和业内更多高手交流的机会。当然我也从qunar到阿里经历了各种Node应用场景,对于Node的前景我是非常笃定的。善于使用Node有无数好处,想快速出成绩,想性能调优,想优化团队结构,想人员招聘,诸多利好都让我坚定的守护Node.js。

作为前端开发,你不能只会Web开发,你需要掌握Node,你需要了解移动端开发方式,你需要对后端有更多了解。拥有更多的Node.js和架构知识,能够让你如鱼得水,开启大前端更多的可能性。

3)不只是“端”的概念,而是用户体验

感谢苹果,将用户体验提升到了前无古人的位置。移动互联网兴起后,PC Web日渐没落。我个人非常欣赏玉伯,在当年无线ALL IN战略中,他还是选择留下来继续做PC Web的前端。虽然公司重点转向无线,但PC业务一直没停。这是很多公司的现状,也是客观事实。那么,PC端这样的“老古董”的出路到底在哪里呢?

在AI时代,没有“端”的支持可以么?明显是不可以的。

• 我们可以利用pc/h5快速发版本的优势,快速验证AI算法,继而为移动端提供更好的模型和数据上的支撑。

• 多端对齐,打好组合拳。既然不能在移动端有更大的突破,大家只能在细节上血拼。

今天的大前端,除了Web外,还包括各种端,比如移动端,ott、甚至是一些新的物联网设备。我们有理由相信Chrome OS当年的远见;“给我一个浏览器,我就能给你一个世界”。

当然,今天大前端还处在快速发展中,对所有程序员来说,既是机遇,也是挑战。只有站到更高的层面去架构前端,你才能收获更好的未来。前端变化快,变化多,除了拥抱变化外,狼叔最喜欢讲的一句也同样适用:“少抱怨,多思考,未来更美好”,与大家共勉。