1.3 Web前端开发
1.3.1 什么是Web前端开发技术
Web前端技术包括三个主要的因素:HTML、CSS、JavaScript。这三者之间虽然相互存在一定的关联性,但是在实际的运用过程中都具有自身的特点,对代码质量的要求也存在一定的差异性。HTML技术可以对超文本的结构进行一定的探索,使得超文本语言在结构上更加完整,将一些过时的标记及时取消,内容和形式分离,进行技术结构的改进之后,生成的网页更加易于管理,可提升用户的体验。CSS,即层叠样式表技术,可用于增强网页样式的控制,为相关的信息和网页的分析提供一定的允许条件,是一种标记性的语言。这项技术的发展可以促进网页浏览速度的提升,对模块的维护和改善也具有一定的促进作用。JavaScript技术出现之后,信息和用户之间的关系不仅仅是显示和浏览的关系,同时可以将实时、动态的数据进行一定的表达。JavaScript可以和HTML技术进行结合,通过其在文件中的嵌入,将不需要进行整理的技术进行一定的响应,使得网页可以更好地与客户进行分析,而不需要经过Web技术与客户进行交流,从而减少了服务器的压力。
随着RIA(rich Internet applications,丰富互联网程序)的流行和普及,Flash/Flex、Silverlight、XML和服务器端语言也成了前端开发的重要语言。随着时代的发展,前端开发技术的三要素也演变成为现今的HTML 5、CSS 3和jQuery。
1.3.2 Web前端开发工程师
Web前端开发工程师是一个很新的职业,在国内乃至国际上真正开始受到重视的时间不超过10年。Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。
2005年以后,互联网进入Web 2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化。网页不再只是承载单一的文字和图片,各种丰富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。
随着Web 2.0概念的普及和W3C组织的推广,网站重构的影响力正以惊人的速度增长。XHTML+CSS布局、DHTML和ajax像一阵旋风,铺天盖地席卷而来,包括新浪、搜狐、网易、腾讯、阿里等在内的各种规模的IT企业都对自己的网站进行了重构。前端开发的入门门槛其实非常低,与服务器端语言先慢后快的学习曲线相比,前端开发的学习曲线是先快后慢。所以,对于从事IT工作的人来说,前端开发是个不错的切入点。
1.Web前端开发工程师需求现状
上海互联网紧缺人才报告发布Web前端开发工程师最紧俏,人民网上海2015年11月13日电,《上海互联网行业人才紧缺指数(TSI)报告》显示,Web前端开发工程师已成为上海互联网行业中最紧俏的职位。根据此次报告,2016年第三季度,互联网在上海全行业中成为人才需求最为紧迫的行业;而在当地互联网各种紧缺职位中,各类研发技术类岗位稳居前列。
人才紧缺指数(talent shortage index, TSI)=需求岗位数/求职人数。课工场中关村实训基地TSI大于1,表示人才供不应求;小于1,表示人才供大于求。如果TSI上升,表示人才紧缺程度加剧。猎聘网的报告指出,上海互联网TSI高达2.49,在上海所有行业中排名第一,并与其他行业拉开明显的差距。
上海互联网行业自2014年第三季度以来,始终保持着较高的TSI,互联网人才严重供不应求。到了2015年三季度,上海互联网TSI达到历史新高,高达2.49。
在上海互联网行业的细分职能中,排名前十的绝大多数为技术性岗位,其中Web前端开发工程师最为紧俏,其TSI为13.03。TSI仅次于Web前端开发工程师的是软件工程师,其TSI为6.02,环比增长30.13%。
2.Web前端开发工程师的职业要求
Web前端开发工程师既要与上游的交互设计师、视觉设计师和产品经理沟通,又要与下游的服务器端工程师沟通,需要掌握的技能非常多。这就从知识的广度上对Web前端开发工程师提出了要求。如果要精通于前端开发这一行,也许要先精通十行。然而,全才总是少有的。所以,对于不太重要的知识,我们只需要“通”即可。但“通”到什么程度才算够用呢?对于很多初级前端开发工程师来说,这个问题非常令人迷惑。
一位好的Web前端开发工程师在知识体系上既要有广度,又要有深度,所以很多大公司即使出高薪也很难招聘到理想的前端开发工程师。现在说的重点不在于讲解技术,而是更侧重于对技巧的讲解。技术非黑即白,只有对和错,而技巧则见仁见智。以前会Photoshop和Dreamweaver就可以制作网页,现在只掌握这些已经远远不够了。无论是开发难度上还是开发方式上,现在的网页制作都更接近传统的网站后台开发,所以现在不再叫网页制作,而是叫Web前端开发。Web前端开发在产品开发环节中的作用变得越来越重要,而且需要专业的前端工程师才能做好,这方面的专业人才近两年来备受青睐。Web前端开发是一项很特殊的工作,涵盖的知识面非常广,既有具体的技术,又有抽象的理念。简单地说,它的主要职能就是把网站的界面更好地呈现给用户。
所以一名优秀的前端开发工程师,不单单需要掌握前端必需的各种技术,同时还要掌握其他技术,需要掌握一点后台的知识,同时也要对网站构架有一定的了解,同时还要掌握一定的SEO网站优化技术,这样才可以称之为一个“优秀的Web前端开发工程师”。除了技术以外,还需要一定的时间来沉淀自己。一名资深的优秀Web前端开发工程师,是每个大型企业都渴望的人才。业内人士表示,宁可高薪招人,许多企业也不愿自己培养相关的技术人才。
如何才能做得更好呢?
第一,必须掌握基本的Web前端开发技术,其中包括CSS、HTML、SEO、DOM、BOM、ajax、JavaScript等,在掌握这些技术的同时,还要清楚地了解它们在不同浏览器上的兼容情况、渲染原理和存在的Bug。
第二,在一名合格的前端工程师的知识结构中,网站性能优化、SEO和服务器端的基础知识也是必须要掌握的。
第三,必须学会运用各种工具进行辅助开发。
第四,除了要掌握技术层面的知识,还要掌握理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持,等等。
可见,看似简单的网页制作,如果要做得更好、更专业,真的并不简单。这就是前端开发的特点,也是让很多人困惑的原因。如此繁杂的知识体系让新手学习起来无从下手;对于老手来说,也时常不知道下一步该学什么。
代码质量是前端开发中应该重点考虑的问题之一。例如,实现一个网站界面可能会有无数种方案,但有些方案的维护成本会比较高,有些方案会存在性能问题,而有些方案则更易于维护,而且性能也比较好。这里的关键影响因素就是代码质量。CSS、HTML、JavaScript这三种前端开发语言的特点是不同的,对代码质量的要求也不同,但它们之间又有着千丝万缕的联系。