前端已不止于前端-序章

@kuitos 2015-08-23 09:43:41发表于 kuitos/kuitos.github.io javascript前端架构

前端已不止于前端-序章

原文写于 2015-04-15

额,那啥,我又准备写一个系列了

楔子

某天有网友在知乎上提问:如何反驳 [程序=算法+数据结构],前端不懂算法不懂数据结构根本就不能算程序员!
伟大的 计算机之子 @寒冬winter 给了一个万能的解决方案,并列出了技术界吵架的无敌五式,其中有一条就是:

XX发展到现在,概念跟以前已经有了很大的变化。

套用到具体案例,你可以这样反驳:前端发展到现在,概念跟以前已经有了很大的变化。
看上去这更像是寒冬老师的戏谑之言,但是用来描述前端发展的现状,实在是再合适不过。

是的,前端发展到现在,概念跟以前已经有了很大的变化。

前端发展简史

星星之火源于09年中旬发布的NodeJs,被贴上后端js标签的javascript自出生以来再次吸引了技术界的眼球,js再也不局限于浏览器那一块方寸之地了。越来越多的前端工程师开始尝试进入后端工程领域,同时也吸引了一批后端工程师来试水所谓的能跑在服务器上的js。各种不同技术背景的开发人员的加入,帮助NodeJs社区发展的欣欣向荣,新的开发环境中遭遇到更多以前浏览器端js开发未曾遭遇(或者说未被重视)的问题,于是各种背景的开发人员为javascript引入了更多其他领域的思想和方法论。于是,各种模块化解决方案应运而生,AMD代表的requireJs、CMD代表的sea.js,各种异步流程控制解决方案,Promise、thunk、co 等等。前端MVC代表的Backbone.js 以及 在 其基础上衍生的出来的 MVVM 框架代表 angularJs 使得后端工程师也能快速的开发出易于维护的页面。时间走到2013年,前端领域开始井喷式发展,越来越多的概念被提出。angularJs将前端工程师从繁重的DOM操作中解放出来,从而有更多的精力去关注附加值更高的领域;基于模块化的开发让人们越来越意识到前端工程化的重要性,requireJs、seajs、fis等以及前后端通吃的Browserify、webpack;基于npm的一系列构建工具也让一切工程化想法得以实现,bower、grunt、gulp;HTML5+CSS3 Canvas 让浏览器不仅仅只是浏览器;ES6标准的确立,TypeScript,基于TypeScript的AtScript;基于shadow dom的webcomponets将web组件化推到了一个新的高度;ReactJ带来的virtual dom概念以及推倒MVC模式的FLUX模式,以及angular2.0带来的革命性变更;React Native让移动端web不再只局限于套浏览器壳子的Hybird app。。。。

前端这两年发展速度之快已经不能单单一哦那个飞速可以形容了,各种新的概念及技术被提出,光是各种名词就已经到了记都记不过来的程度了更别说都有所了解。前端开发再也不是以前那种写几个html标签写几行if else的刀耕火种的蛮荒时代。用 苏宁前端架构师 @民工精髓 的话说,前端发展已经由农耕时代进入到了第一次工业革命 蒸汽机时代了。对于前端而言,这是最混乱的时代,也是最好的时代。

是的,《前端已不止于前端》是一个只关注前端届最前沿思想及技术的系列。

最后,用一句目前在前端届流传很广的“名言”来开启我们的篇章:

任何能用javascript实现的软件及系统,最终都会拿来用javascript实现。 -- 马云