fed
最近看到一个很让沮丧的比喻:程序员是IT中的民工,而前端则是IT民工中的掏粪者。我们来分析一下究竟有没有道理。

可以把网页的开发比作成楼房的修建。修建楼房,首先得有建筑图纸,这是网页开发中的原型(prototype)。有了图纸,就可以用钢筋水泥搭建楼 房了,这些毛胚房是网页中的结构。毛胚房还得装修,这是CSS。相同结构的毛胚房可以装修成各种不同风格的住房,这便是CSS禅意花园的秘密。JS则可以 看成是楼房里的电梯和中央空调等玩意。没有电梯的楼房,有楼梯依旧可住,只是电梯会让住户更方便一些。在网页中,电梯和楼梯反映的就是渐进增强的开发思想。等装修都弄好后,欢欢喜喜的终于可以乔迁新居了,这些入住的居户就是网站的用户。

好像没啥可讲的了,网站的前端开发就上面这点玩意儿。中国的毛胚房,都是雇用极其廉价的民工来搭建的,砖瓦水泥等材料也没啥新花样。毛胚房的搭建, 技术含量很低,民工们很可怜。作为前端,咋一想,在大部分公司的地位极低,所用的砖瓦,无非也就是HTML的90多个元素,因此一类比,非常明显地可以得 到一个结论:前端就是民工。

太让人沮丧了!…… 等等,我们来分析一点有意思的差异。

第一,我们的砖瓦比建筑民工多。我们有90多种元素可用,什么时候该用什么,建筑民工们不用思索,照着规律来就行。但是作为一名前端开发工程师,我 们没有明确的规则可以参考。如果不去思考,那我们就真的和民工无异。但只要一去思考,我们就有可能变成文坛巨豪,或者成为绘画大师。海明威的《老人与 海》,我们每一个字都认识,但要自己也去写一本出来,绝大部分人就傻冒了。海明威的魔力究竟在哪?从纯文字上讲,用词的精简和选词的恰当是海明威的魅力所在。想要成为一个优秀的前端,也必须在选词和用词上花大功夫。比如,em和strong的区别,我敢打赌你不知道其中的微妙(如果你确信你很明白,请联系我,我会送一份礼物给你。我的答案过几天后会在博客上阐述)。

第二,我们的装修能力比民工强。民工只会按照既定的方案粉墙刷漆,流程非常工业化。然而作为前端,虽然视觉图(mockup)是视觉设计师设计的,但如何装修,采用什么方案装修,这是前端自主选择的。比如布局方案,采用经典的float布局还是先进的双飞翼布局(自己的东西如果自己都不夸,就不会有人夸了),这取决于我们对CSS知识的掌握程度和涉猎的广度,学习成本比民工高多了。

第三,民工们只会安装电梯和空调,我们前端是能做电梯和空调的。在一些公司,将前端分为重构工程师和JS工程师,就是因为看到了做电梯和安装电梯的区别。但这部分公司依旧没看透的是,JS固然威力巨大,但光有电梯和空调是无法构成楼房的。同理,如果有没结构良好且富含语义的HTML代码,JS就是空中电梯,只能看看,真要坐上去,从上面一走出来就会摔得很惨。

铁肩担设计,妙手写网站。前端是一个目前还未被大众理解的但迟早将熠熠生辉的新生职业,我们不是民工。

转自:http://lifesinger.org/blog/?p=900