关于前端将来方向的思考

2019 已过去一半,前端社区关于前端将来发展的文章最近也多了起来。最近看到了阿里大佬谈将来前端的文章便也有了一些本身的思考,建议没有看过文章的小伙伴能够去看看。前端

阿里前端委员会主席圆心:将来前端的机会在哪里?程序员

虽然说正式从事前端时间不算很长,不过最先接触前端是在 2012 年左右,也就是上文的第二阶段末期。但从我我的的感觉来看,那时的前端仍是连带着切图的第一阶段。开局一个 div,配合 Sublime 项目直接开搞。浏览器兼容全靠手、js 引入顺序全靠脑。当时找工做的话,PS + jQuery + div 布局足以(若是切图好的话可能仍是加分项),会用 ExtJs 的话,当时算是王者了。npm

photoShop jQuery

而以后的两年由于工做内容和前端关系不大,也就关心的较少了。等再次回归的时候,已是 AngularReactVue 的“三国”时代了。要搞项目也是 Webpack 起手的工程化流程。浏览器的兼容也有了预处理器来搞定,切图也移给 UI 去作了,前端更多的是负责 JavaScript 的数据和交互处理以及基于 Node.js 的 BFF(Backend For FrontEnd)部分。后端

勉强地来讲,我也算是经历过了前端发展早期阶段了。回过来看最大的一个感觉就是前端开发正变得和后端开发愈来愈像。现在的 Webpack 起手就和当年在 eclipse 中新建一个 Java 工程,而 npm 就和 Maven、Gandle 同样。flux 式的数据管理模式中也能看到 MVC 的影子。浏览器

为何前端会发展成如今这样呢?回顾一下历史,能够发现 Ajax 的成熟应用为先后端的分离埋下了伏笔。后端能够更关注于数据层面,把渲染和交互还给前端。SPA 或者说富应用的概念也就在这个时候出现了,而随着硬件和网络条件的发展,SPA 和富应用也逐渐变得可能。网络

先后端分离,也让软件的架构从 C/S 变为了 B/S。但软件的本质其实并无变化。前端拿回的数据处理的部分正是后端所擅长的。因而 Backbone 这样的 MVC 框架就出现了。数据层的问题解决以后,还有另外一个没法避免的问题,那就是 UI 的更新。传统的 DOM 操做在面对复杂项目时编写和维护就是开发者的噩梦,同时大量的 DOM 操做也会带来性能上的问题。因而 Virtual DOM 和 MVVM 的框架也就顺势出现了。只不过 MVVM 也不是前端发明的,最先是在微软的 WPF 上出现。架构

另外一个推手就是 Node.js。Node.js 的出现让前端程序员没有门槛地编写前端须要的各类工具。模块化、预处理器、打包工具也随之出现。固然,一部分后端程序员把他们在后端的经验搬来也是有必定影响的。框架

再结合到业务上来讲,如今前端的工程基本都是基于各类 cli 脚手架起步。除了注重交互的 C 端外,大部分的中台管理系统因为逻辑以 CRUD 为主,脚手架外加 UI 库就能很快搭建起来。那么这一部分也就很容易用工程化代替。中台系统的构建以及 CRUD 为主的系统将被简化。(小伙伴们有据说过阿里的飞冰吗?)前后端分离

因此从这个角度来看的话,将来前端向“前”的会更向前,往“后”的会更日后。向“前”更注重交互,会模糊与 UI 之间的界限(或者干脆合并),这部分可能会须要 CSS 结合 UI 的艺术细胞(重 C 端);而向“后”则更靠近近后端,Node.js 为主的 BFF 层会是另外一个方向(好比前端基础组建的搭建、工程化工具的开发和维护),这部分可能就须要扎实的基本功了。还有一个方向是图形学相关的技术(WebGL、Canvas),由于图形学受制于目前的硬件,在前端方面还相对较少,固然这一部分应该是须要扎实的数学功底了。虽然如今的一部分工做可能会被工具简化,但 IOT 和 AR/VR 技术的成熟也会进一步扩大前端的范围,只是用的语言是否是仍是 JavaScript 就不知道了。eclipse

以上即是我我的对前端将来方向的一些思考,大部分仍是从我的的角度出发,若有不足之处还欢迎交流指正。

相关文章
相关标签/搜索