前端工程师已是你们再也不陌生的一个软件行业的工种了,尽管这一工种诞生也没几年。做为一名从业三年的前端工程师,我尝试结合业界标准与个人理解,来尽量诠释一下前端工程师这个职业。这篇文章的适读人群为:非web方向的软件开发者、产品经理以及与产品挂钩的相关人士、正在纠结需不须要招聘一个前端的老板们、刚刚走上工做岗位的前端新手们、以及全部对前端感兴趣的父老乡亲们。
前端工程师的英文名为front-end engineer,简称FE,下文将用FE来代称。如今意义上的前端(并不是只制做网页),国内最先开始有大规模招聘岗位应该是2011年左右的事情吧,在此以前,FE的工做基本都是由服务端工程师包办的,或者是由设计师来产出HTML页面。那么,是什么样的缘由催生出了FE这一职位呢?本文将从FE的工做内容、专业FE应具有的技能和品质来聊聊这个职业。
用户体验的操刀者
前端工程师的首要工做就是开发用户界面,在web系统中,就是指网页了。为何网页须要专门的FE来写呢?答案就是「用户体验」。随着web2.0概念的普及以及web3.0的提出,用户成为互联网的主要生产者,网页所承载的功能愈来愈多。
一方面,企业的「用户体验」诉求很强烈。这个很容易就能理解,若是你的产品看上去就像个钓鱼网站并且还特别难用,就会有一部分用户离你而去。非互联网企业呢?也会面临这样的状况,你花了很大的功夫优化数据库,优化服务器负载,你的客户却很难感知到你的努力。你的系统界面仍是八九十年代的风格,客户的第一感受就是这系统不行,不买你的账。相反,若是你花一点时间作一套崭新风格的界面出来,客户的第一感受就是这个系统好炫酷,技术含量很高。不要小看这个第一感受,对于外行人来讲,第一感受每每起到了决定做用。好多企业都意识到了这一点,因此对用户体验的诉求就上去了。
另外一方面,如今的用户也都很挑剔。毕竟他们使用的产品一个比一个炫,都被惯坏了,你的产品稍有点不爽的地方,就上微博去给你宣传。
前端工程师是用户体验的把控者,在产品经理构想出交互原型,设计师设计出交互细节后,FE就用他的双手一行行敲出这些代码。他敲出的每个按钮,每一张图片,都被成千上万的用户点击着,FE与用户能够说是“零距离接触”。做为产品交互的实现者,除了HTML、CSS这两门语言要精通外,对前端要求更高的实际上是非技术因素。
FE须要对用户体验有较深的理解。好比页面上有一个超连接,字体比较小的状况下,用户可能会一下点不中,由于连接的可点击区域是紧贴着文字边缘的。前端能够经过很简单的方法来扩大这个连接的可点击区域,使得用户更容易点中。这就是用户体验,正如《瞬间之美》中提到的那样,touch到用户的心里只须要一瞬间。对用户体验的理解,还体如今对一些交互常识的把握上。好比用户操做某个软件的界面,会感受它很灵巧,却具体说不出究竟是哪里。那么极可能是这个界面上的按钮有着设计良好的四态(正常、鼠标移上、鼠标按下、不可用),它会随时对你的操做给出反馈。
懂用户体验的前端工程师,会让他的做品与用户沟通,可以touch到用户心中那一块柔软的区域。
FE须要有一点强迫症。这体如今对任何瑕疵的不容忍。好比采用技术手段让页面的滚动更平滑些,减小页面的视觉抖动,像素级别的定位校准。当用户触碰的内容是一串非电话号码的数字时,不要让手机自动调出拨号功能,等等。不少细节是产品经理没法感知的,由于这些都是很零散的技术手段,只有靠FE来点滴积累。再有极致者,追求让页面的响应时间再减小几个毫秒,让你的手机少耗几KB流量,少耗一些电量。这些甚至连用户都没法感知,可是当你的用户有百万级别或者千万级别,这样作的价值就显现出来了。
前端工程师须要是一个心思细腻之人,须要对美有所领悟,须要执着地追求完美,须要有品味,有思想,有大局观,最好还能懂点心理学。
用户端业务逻辑
作出优雅的界面只是前端工程师的第一步,编程也是必备技能,FE承担着处理用户端业务逻辑的任务。放在之前,用户端就是个IE浏览器,没有什么业务逻辑可言。但如今不一样了,用户使用浏览器发表文章、进行社交活动,更复杂的能使用在线工具完成工做。
javascript就是FE须要掌握的编程语言,他应该通晓这门语言的优点和缺点,掌握各类编程思想、开发模式。利用各类技巧实现交互愈来愈丰富的界面,同时还要与服务端的工程师沟通,调试接口,完成:页面展现——响应用户操做——提交用户数据——反馈操做结果这一系列流程。
从这一点上,要求前端工程师要有软件开发的基础,了解计算机的基本原理,网络通讯的基本原理,因此计算机相关专业出身的前端会更有优点一些。
前端也须要架构
写写网页也要架构?有什么好架的?回答这个问题首先得明确一点,FE的工做内容已再也不是「写写页面」这么简单。随着前端代码的规模愈来愈大,逐渐涌现出了模块化开发、MVC、MVVM等开发模式。团队规模也从原来的单兵做战演变为团队开发。
因此,一个高级前端工程师,要有架构能力。这个架构能力包括不限于:
- 对现有优秀框架的了解与整合使用
- 根据项目的业务特色构建出合适的开发模式
- 设计前端测试方案保证代码质量
- 用工程化方案组织起团队的开发流程。
向前延伸、向后延伸
物联网的市场愈来愈热了,手机是物联网体系中的一个关键节点。前端工程师的战场已再也不是单纯的浏览器,未来会覆盖到各类「端设备」上。得益于javascript语言的灵活性,如今用javascript已经能够开发windows应用、ios应用、android应用,能够编写智能电视上的应用。未来,或许是VR、可穿戴设备、智能家电。这是前端能够向前延伸的方向。
另外一方面,因为nodejs的横空出世,javascript这门语言居然神奇的有了服务端的能力。以前用java、PHP作的事情,js一样能够实现了。原本前端阵营中就有一批人是从后端转过来的,有服务端开发的基础,得了nodejs这一利器,再加上如今市场的需求,快出产品,敏捷开发,前端工程师向后延伸的路线宽广而明亮。事实上,全栈工程师的概念在前年就被提出,BAT这样的业界领头羊早已用nodejs作一些基础设施的建设,而不少小而快的创业公司,也在用nodejs进行快速迭代开发。
持续学习
前端领域的技术更新相对于其余领域要快不少,缘由大概也是由于这个领域离用户最近吧。有一些新的技术甚至是颠覆性的,前端工程师必需要跟上时代的步伐,不然你开发出的产品在体验上就落后别人一截了。
有一些市场人员提出的需求,产品经理根据多年的经验评估后以为没法实现,就被打回了。而事实上,随着新技术的出现,有些你认为没法实现的功能已经能够在前端实现了。随着HTML5的支持度愈来愈高,前端拥有的能力也会越强。好比利用canvas可以获取到图片上的每个像素点,这样前端就拥有了图像处理能力。有了FileReader API,前端拥有了本地文件的读取能力,还有地理位置获取等等。
而这些新东西,就须要前端工程师来不断学习。因此,一个称职的前端必须可以保持持续学习能力,可以对新技术有敏锐的嗅觉。活到老,学到老,说的就是前端工程师。
高情商的程序猿
大多数人对程序猿的印象就是情商低、不善言谈。但前端工程师应该是个例外,这是由工做性质决定的。
从工做流程来看,FE处于设计师的下游,他要接设计稿,转化为网页。同时又是后端工程师的上游,须要把用户产生的数据提交到服务端。横向来看,他又与产品经理有着密切接触,由于他可能随时和产品经理探讨交互的细节。这样一个链接着团队中的其余成员的角色,须要他既是一个粘合剂,又是一个润滑剂。
前端工程师须要有较高的沟通能力和理解能力。咱们常常开玩笑说“设计师活在童话故事里”,由于有时候他们设计的页面根本不符合常规,没法实现。这个时候你就须要耐心的给设计MM讲原理、讲缘由,而且告诉她设计须要遵循哪些基本规范。对于产品经理的思想,你要能把握到位,你得理解他比划了半天究竟是想要作什么。与后端工程师打交道的时候,你又得立刻化身编程达人,跟他们聊数据类型,聊面向对象,聊设计模式。
你须要能随时切换角色,切换你的表达方式和谈话内容。因此,你得是一只高情商的程序员。
以上就是我对前端工程师的理解,前端的门槛低,但要成为一名专业的前端工程师,须要掌握的东西太多了。除了前端技术外,我认为前端更重要的是综合能力,包括我上面谈到的思惟细腻、有品味、有思想、情商高等等。毕竟你要经过代码与用户产生接触,给用户带来愉悦感。从某种程度上来讲,你得是一个好恋人。
想关注个人更多动态?欢迎关注个人微信公众号: