关于前端的那些事(转)
这是一篇投稿,来自淘宝 UED 前端工程师堂主。堂主是个高高又帅气的小伙子,不光写得一手好代码,还练就一手好毛笔字。介绍到此,来看文章。
关于前端的那些事
好吧,最近有些人又在讨论“前端是不是一个低级工种”、“前端这个职位是不是有存在的必要”等类似的问题了。这里说“又”是有原因的,因为这类话题出现的频率虽不似月经贴,但每隔一段时间年也总会出来秀一下下。
作为一个立志于为前端布道的从业者,有些个体的声音需要发出。
1. 前端的尴尬
目前,前端的地位及受重视程度,相比前几年有了极大的提升。但尴尬之处仍存在,具体体现为:国内大部分有互联网业务的企业确实不需要专业前端,专业前端的就业面及需求量相比 JAVA、PHP 等开发工程师而言明显局限。
对大部分有互联网业务的企业而言,它们的互联网产品,开发工程师或者视觉设计师自己写一写 table 可能就够了,甚至其产品都是外包公司做出来的。即便需要前端也只是充当切图的页面仔,涉及到 JS 也只是实现一些简单交互。有的从业者甚至通过搜索引擎,搜出一些模板、代码片段,修改一下来满足需求、应付老板。这导致了相当一部分从业人能力平庸,被一些程序员同行概括认为前端技术难度有限,职位可有可无。
前端地位的尴尬返回来也导致学校教育上的漠视,在互联网技术快速发展的当下,迟迟不开设前端对应的专业课程。我在大二时就被当时拥有博士学位的数据结构老师点名批评:“就你天天研究的那些网页的东西,一点技术含量都没有,随便找个同学培训他一周 DreamWeaver 就能全学会!”微博微信上大学同学众多,堂主不会说谎话。
不过现在似乎有点改观,自从学校知道我这个挂科大户、反面典型来到淘宝工作后,我就变成了就业典型。甚至毕业前几个月院长还专门咨询过我,开设前端对应的课程,哪些书籍是适合作为教材的。能通过自己的就业对学院的教学改革产生一点点布道的作用,我现在还感到高兴和欣慰。
那么,前端的技术含量到底怎么样?是不是真的像其他人说的那样,企业不值得为其单独设立一个职位呢?
2. 企业中的前端
个人观点,其互联网业务仅作展示窗口作用的,可能确实不需要设立专业的前端职位。如企业展示类网站、政府网站等,其运营业务的核心渠道不基于互联网,其互联网产品更多承载的是品牌推广手段多样性的作用,其网站产品的开发完全可以通过外包来实现,顶多只需要设置1、2 位运营编辑人员即可。
而对于那些核心营生基于互联网的企业而言,专业前端的职位就是必须的。因为前端作为一个职业存在的价值主要体现在:“叫专业的人干专业的事,解放并提升了产品方的生产力”。翻译成人话就是,前端解放了交互、解放了视觉、解放了开发,并用其专业技能提升了客户端的用户体验。
说解放了交互及视觉,是因为从此交互只专注于操作体验,视觉只聚焦于艺术呈现,而不用附带还要做切图切页面的事,且你叫交互、视觉去写要具备专业编程能力的 Javascript 语言他们也很难搞定。
说解放了开发是指开发可以将精力都投入在诸如底层系统架构、算法优化、数据处理等核心业务上,而不同再去写页面套页面,且你叫专业开发去捣鼓需要具备极强人文修养的 HTML 和 CSS,他们多半也会崩溃的。
说提升了客户端的用户体验,是因为,你找出一个能同时搞定 HTML 语义性、CSS 兼容性、JS 优异交互、整体性能经过优化、结构样式及脚本具备优异扩展性支持、且界面还原精确到 1 像素的交互、视觉或专业开发给我看看,有一个我们团队要一个!
3. 前端的工作内容及技术含量
作为前端开发工程师,我们中的绝大部分(极少部分的前端工程师的工作内容是面向底层库的开发,为其他前端提供更便捷的开发工具),在日常的开发实践中,确实鲜有要用到算法的情况。如此好似低端,却不意味着做好就容易。
相比字面意思理解性较差的 F2E (Front End Engineer,前端开发工程师),我们中绝大部分的工作性质更准确的形容应该是 UIE(User Interactive Engineer,用户界面开发工程师)。我们要处理的事务包括但不限于:产品界面的在浏览器端的展现、前后端数据的通信以及基于 DOM 操作的交互体验。
因前端编码手段过于灵活,质量参差的 HTML、CSS 和 JavaScript 可能都可以满足当前的产品需求。可若一旦涉及可用性、扩展性、细节控、性能优和兼容性,质量不佳的代码劣势立现。如,对很多人最不重视的、认为最没技术含量的 HTML:一个优异的 HTML 结构,且不论其本身就具备的高优雅性及可读性,更可以节省一大半的 DOM 操作;且具备良好的可扩展性,避免未来因需求变化而导致的大规模结构重构;更能避免绝大部分的 CSS 兼容性问题 —— 我就不提什么模块化复用性、搜索引擎优化和盲人阅读器的那些事了。
另外因前端职业成型晚,技术迭代快(且这种迭代属于技术累加式而非替换式,使得越往后入门的新人需学习的东西越多),产品兼容问题多(想做到 “write once, run anywhere" 是F2Er共同的梦),校园教育缺失,自学成本高、最佳实践积累少、职业思维模型需跨技术与人文等种种因素,都导致前端职业修养的养成成本更高,靠谱的人才稀少。
所以说,“糙活也能用,细活养成难”的现实一是阻碍了很多从业者的进步,二也造成了行业上认为前端“没难度级别低”的错觉。
但错觉终究是错觉,互联网的快速发展会帮助大家逐渐纠正这一认知。前端现在不论作为一个职业,还是其背后代指的一干技术与思维,都依然显得青稚,需要积淀与成熟。但请相信前端成熟的路不会更类似其他职业的开发——我会告诉你一个好的前端应该具备很强的人文气息么?人文这东西说不清道不明,但可以肯定它属于是感性的一类,正如 HTML 和 CSS,看似简单,却绝非简单,一如文学创作,语境的形成不取决于语法,却依赖于开发者自身。
(完)
原文地址:http://www.osmn00.com/personal/244.html
堂主的新浪微博是:@堂主
最后,增加一个小小的栏目,玉伯有话说。
-
昨天发出 WTP 近期数据与感想 一文后,在微信上收到了很多温馨的回复,非常感谢朋友们的信赖与支持。因为有大家的关注,我相信 WTP 会越来越好。
-
堂主今天的话题,是否月经贴,取决于读者自身。收获来自于思考,如果能有新的思考,每个月讨论一次又何妨?比如堂主文章里提到的 UIE 工程师,是非常好的新思考。支付宝,今年还将前端开发部改名成了交互技术部。前端的核心职责是交互,不仅是与用户的交互,也包括与后端的交互。名字不代表什么,也代表着什么,取决于你怎么看。
-
越来越不在意微博上的言论,我要的是思考与真实。比如陈皓,前面多篇文章有提及。每次交流的背后,更让我看到的是陈皓的难得与可贵。陈皓对前端的理解,绝非像微博上很多前端认为的那样肤浅。对未知领域的好奇、探索、尝试性交流,这一切令人钦佩、难能可贵。
-
昨天发了一条微博说:三年后,希望大家提到玉伯,不再想起前端。这个微博没什么深意,只是提醒自己,除了技术,还有产品、自由梦。希望三年后,自己的名字被人提及时,联想到的是像 Evernote、Dropbox 一样的产品,而不是具体的技术。这个感慨来自阅读鬼脚七的微信(希望大家以后提到鬼脚七,不再想起搜索)。
-
继续鼓励并期待大家的投稿,无论是阿里的前端,还是阿里之外的前端。投稿方式很简单,将文章地址告诉我就行。
-
另外,微信回复上,有不少人对霜波的心理学系列很感兴趣。我跟霜波联系过,同意在 WTP 上连载。如果各位想看,可以回复“想要霜波”,回复超过 100 个,就开始连载。
题图:不知道为什么,看着这张图,会想起前端。
欢迎订阅 WTP(Web 技术与产品交流)微信公众帐号。WTP 关注技术、产品、自由梦,在每个工作日(偶尔休息日)会定期推送一篇原创文字。欢迎扫描二维码订阅: