1.6 总结
Web应用从简单的静态网页发展到如今复杂度不逊于桌面和手机应用程序,而前端的变化是技术的不断进步和权重的不断增长,不变的是始终围绕分层架构中的交互逻辑层展开。爆发式的技术发展给前端开发带来了很多问题,不论是从前端应用架构本身还是迭代流程考虑,前端急需系统性的开发和管理方案。
作为软件工程的一个子集,前端工程化仍然围绕编码、方法、工具三个要素展开。从前端应用的技术架构本身出发,关注点聚焦于模块解耦、数据管理架构模式、性能以及前后端分离,目标是实现架构的高可用性、可扩展性、可伸缩性,同时提高独立开发和跨团队协作开发的效率;从架构之外的角度出发,关注点聚焦于前端应用的开发、构建、测试、部署以及持续化工程体系,目标是建立规范、有序、高效的迭代流程,降低产品迭代所消耗的人力和沟通成本。
[1]Viaweb的两位创始人。
[2]Jesse James Garrett于2005年2月发表了文章AJAX: A New Approach to Web Applications,AJAX在其中被正式命名,并沿用至今。
[3]MVC的全称是Model-View-Controller,是目前Web服务端最普遍的架构模式之一。
[4]参见链接1和链接2。
[5]Tim Berners-Lee,2016年度图灵奖获得者,万维网的发明者,同时发明了世界上第一个浏览器WorldWideWeb。2004年被授予英国爵级司令勋章,所以在中国也被称为“李爵士”。
[6]软件工程一词被正式提出于1968年由北大西洋公约组织NATO举办的首届软件工程学术会议上。而软件架构虽然最早在1960年就被提及,但直到1990年才流行起来。
[7]为了应对软件危机,NATO提出将工程理念带入软件开发领域,软件工程自此得名。
[8]学术研究的主要关注点在于结果的正确性,而工程更关注经济角度的成本收益比。这也是计算机科学与软件工程两种学科最大的不同点之一。
[9]热力学的全称是热动力学,是物理学的一个分支,是一门研究热现象中物态转变和能量转换规律的学科。
[10]熵在信息论、生物学、化学等学科中均有所应用,最早于1865年由德国物理学家鲁道夫·克劳修斯提出,应用于热力学系统。
[11]奥地利物理学家路德维希·玻尔兹曼于20世纪70年代提出玻尔兹曼原理,其中对熵的定义是作为系统混乱程度的度量。
[12]所谓及时干预可以理解为连续的、微小的重构行为。与彻底重构不同的是,微小重构的成本很低,并且不会打破软件系统的整体架构,而是修正架构的部分缺陷以适应业务功能需求。
[13]GLSL语言用于编写WebGL着色器。
[14]命名不规范有一定的历史原因,比如在缺少JavaScript构建工具的年代,开发者通常会将代码手动混淆(即刻意地把变量和函数名称写得不明就里)。甚至某些编程语言本身也存在此类问题,比如被广泛吐槽的PHP内置函数命名。
[15]Hybrid应用是在原生应用程序中通过WebView嵌入Web网站的混合应用,是目前一种较为普遍的移动端应用架构。
[16]YUI Compressor是Yahoo推出的与开源前端框架YUI搭配的压缩工具,发布于2006年。