写给即将踏上IT软件工程师之路的年轻人

以前端技术的演进为例,我们可以看看这些年来,前端技术的发展历程,我们就知道事情不是大家想象的那么简单,期间对从业者的要求也是不断演进的,其中就代表着职业生涯的沉浮。

1994年美国的

Netscape公司推出第一款浏览器NCSAMosaic(后改名Navigator),web1.0时代正式到来(web的概念可追溯到更早)。安装了该浏览器的用户,可以浏览来自于其他 站的信息(主要是文字和图片)这个时代前端的代表技术主要是HTML 4.01,CSS 2.0,ECMA 4.0(JavaScript语言核心规范,两者的关系后面会有介绍)。三者的关系可以描述为:HTML告诉浏览器 页上有什么,CSS告诉浏览器他们长什么样,JavaScript描述他们有什么行为。直至今日,这三者仍是前端开发的三大核心(以JavaScript为重中之重)。

web 2.0的概念正式诞生于 2004 年 3 月 O’Reilly Media 公司和 MediaLive 国际公司的一次头脑风暴会议中,在“What Is Web2.0”一文中首次被提及。web2.0时代最具代表性的前端技术莫过于HTML5 + CSS3和ES5 / ES6了,其中HTML5为 页提供了诸多能力,包括播放音视频,canvas,svg,多线程,本地存储,离线应用,websocket,web worker等等;CSS3则大大增强了 页的渲染能力,包括阴影,渐变,新的布局模型,2D/3D变形和动画等等;ES5和ES6对 页的增强则是整个web2.0发展的核心,它赋予了 页越来越强的交互能力。其中ES5诞生于web2.0的早期,目前正在逐渐被ES6及其后续版本所取代。

jQuery红极一时,但是终究无法应对越来越复杂的前端开发工作。一方面,jQuery大量的优秀特性已经被吸纳为JavaScript标准。另一方面,占有其60%代码量的DOM操作已经被公认为 页的性能杀手,因为DOM操作需要反复地操作文档,并触发 页的重绘和重排,这会严重影响 页的性能,最严重的可能导致页面卡死。此外,使用jQuery开发的 站,会因为大量的DOM操作,需要书写大量的代码,从而变得难以维护。

这些信息都是 上扒来的,事实就是这样,前端技术不断的演进中,Javascript技术也是不断的迭代,但是他具有先天的缺陷,他是单线程的语言,具有诸多掣肘之处,曾经一段时间Javascript技术跌入谷底,直到nodejs的出现,事情出现了转机,Ryan Dahl于2009年发布了JavaScript的服务器端运行环境nodejs。它基于谷歌浏览器广受好评的JavaScript引擎–V8引擎,是一个事件驱动的非阻塞I/O模型。它将所有的客户端请求都交给事件循环机制来处理,从而将I/O代价降到极低。由于单线程的语言机制,它不需要处理复杂的线程同步问题,更不会发生死锁等线程问题。随着ES6规范中web worker的出现,nodejs也具备了利用多核CPU的能力(当然仍然无法与java相提并论)。

近几年随着nodejs的成熟,前端兴起了组件化开发和MVVM开发模型。

目前对国内影响比较大的当属React和Vue了(Angular没有接触过,所以就不讨论了)。2013年,Facebook的前端团队设计了一个崭新的前端框架,它将 页的各个部分拆分成一个个的组件,使用虚拟DOM将页面上的节点存储在内存中,将视图和数据进行绑定。视图的显示完全由数据和模板来驱动,这样当数据发生变化时,开发者不需要考虑如何去进行DOM操作,框架会自动以高效的方式去更新虚拟DOM,然后更新 页内容。开发者只需要专注于数据的操作即可。这样就实现了视图与业务逻辑的分离。

至此前端作为从软件开发架构中独立出来,且越来越受到企业重视,依赖于悠久历史的Javascript技术,很多技术人员重回事业巅峰。

就好比是目前的后端开发语言,每年都会做评比,你方唱罢我登场,曾经的Perl,Ruby,Visual Basic.NET,LISP,COBOL等,这些语言消失的背后是千千万万的从业者的困惑。

所以,从事软件开发,你需要做好学习的准备,而且是终身学习的准备。而且,目前大部分互联 企业不是你值得托付一生的雇主,看看华为工程师的悲剧吧。

希望此文能够让您理性思考从事此行业的未来,做好准备。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月4日
下一篇 2020年3月4日

相关推荐