前端开发越来越需要对数据敏感的工程师了

本文摘自 勾三股四 更早时期的 不老歌 博客。


这是我从杭州D2前端论坛归来,结合最近工作内容后的感受。

记得我刚加入傲游的时候,我的职位名称还不带“前端”这么冠冕堂皇的字眼——也就是个“网页开发”人员。那时每天最主要的工作,就是和页面布局、表单、事件打交道,随着ajax技术被越来越多的使用,我的工作范围扩大到了xml解析和较为复杂的字符串分割和拼接,但工作核心还是界面。那会儿的工作,翻来覆去好像也就是这些,如果xml或正则不太熟,简单问问边上后端或客户端的程序员就搞定了,核心竞争力就是dom/css还有firebug。

随着Web技术的丰富,“前端”这个概念的到来,以及人们对“前端”技术的高期望值,这种状况逐渐在转变……

我们在工作中接触的“传统模式”的网页越来越少,相比之下,网站的样子做得和应用程序越来越接近,现成的表单、css样式、html元素已经无法满足产品要求了,同时数据处理和逻辑控制变得越来越复杂,过去以界面-事件为驱动的开发模式逐渐变得不适用了,而以数据-模块为驱动的模式被更多的认同和运用。

再看看最近几次Web标准化交流会、WebRebuild大会、D2前端论坛、Google Fast Dev大会等等前端技术活动,探讨的很多内容都是非常抽象化、结构化的,不然就是算法优化和性能优化。对于每天只接触div+css重构网页,再利用jQuery绑几个提交按钮、表单验证、弹出几个用div模拟的对话框的前端工程师来说,可能体会不到那些新思想、新技术带来的欣喜,无法汲取真正的营养。但对前端抱有极大期待、拥有极大野心的童鞋们来说,无异于久旱逢甘露的感觉。而如何处理好前端世界里的各种数据结构与算法,就在其中扮演了非常关键的角色。所以未来前端的驱动力必然会在数据这个层面。

说“驱动”这个词可能比较晦涩不易理解,如果再解释一下,那就是我们在打算完成这项工作之前,最先要考虑的事情是什么,然后顺着这个方面起步,完成所有的工作。

如果想做好更为复杂的网站或Web应用,上来就先写html/css代码然后在静态效果上绑定各种事件进而完成js的开发模式会让你很容易就陷入了数据和逻辑的苦海——这其实就是界面、事件驱动的做法。而数据、模块为驱动的模式则是在一开始抽象出整个网站或应用的数据结构和数据逻辑,然后把界面以模块为单位进行拆分(粒度并非在事件这么小的级别),这样程序基础非常牢固,可以应付负责的业务逻辑和数据结构,也可以应付各种后期维护和调整。在这个时候,再去完善界面,绑好事件,就变得顺理成章,这部分的开发也不会因此变得复杂或费力。

想做好这件事,就需要深厚的程序员功底了。所以前端开发,在朝界面-事件驱动转型为数据-模块驱动的过程中,需要更多对数据敏感的工程师的加入。

前端开发,任重道远