一个相似的术语是软件工程(Software Engineering):前端
Software engineering is the systematic application of engineering approaches to the development of software.
将工程方法系统化地应用到软件开发中,就叫软件工程。那么,紧接着又有两个问题:react
工程是指使用科学原理设计和制造机器、结构等,好比修桥、铺路、建隧道、造车、盖房子:webpack
Engineering is the use of scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, vehicles, and buildings.
具体到软件领域,指的是以系统、严谨、可量化的方法开发、运营、维护软件,软件工程包括对这些方法的应用和研究:git
Software engineering the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software and the study of these approaches.
所谓系统化,能够理解为软件生命周期中用到的这些工程方法是互补的,各自解决一部分问题,联合起来保障软件的质量、交付速度等github
综上所述,前端工程能够定义为,将工程方法系统化地应用到前端开发中,以系统、严谨、可量化的方法开发、运营、维护前端应用程序web
一样先看软件工程,其发展历程经历了这些关键点:redux
前端工程也经历了相似的过程:gulp
前端愈来愈重,复杂度愈来愈高,配套的前端工程体系也在不断发展和完善,可简单分为开发、构建、发布 3 条主线:segmentfault
三大主线撑起了前端工程体系,系统地覆盖了前端开发的主流程,其中的工程方法也彼此互补、相互影响,体如今:后端
(摘自Book of Modern Front-end Tooling)
典型的前端工做流分为 5 个步骤:
从脚手架到监控系统,配套的前端工程体系已经融入到了前端工做流的每一个环节,很大程度上决定着前端生产效率
P.S.开发环节以前的分析、设计阶段这里不展开,由于传统的软件工程方法一样适用,前端项目在这个阶段并无太大的特殊性
开发阶段的首要任务是建立样板项目(一并选择前端框架、类库),接着开始修改-验证的主循环,主要涉及这些工程化设施:
开发完成,进入测试阶段,先要对总体功能进行充分自测,再移交专业的测试人员验证,过程当中须要用到工程化设施有:
不一样于开发阶段,在构建阶段要作更多的极限优化和流程联动,涉及:
最后将通过充分测试的前端应用程序部署到生产环境,须要这些工程化工具:
前端应用程序上线以后,还须要持续关注线上的实际效果和异常状况,依赖这些工程设施:
除工做流各阶段的工程设施以外,前端工程的另外一部分是过程之间的衔接。前者旨在提升生产效率,后者要解决的是体验问题
总的来看,前端工程的演进体如今 2 方面:
不管是职责分工的变化仍是具体工做内容的变化,对开发者而言,都意味着更多的学习、理解成本,并最终表如今开发体验上。而面向过程间衔接的工程设施正是为了缓解这些变化带来的升级适配成本,更平滑地走出过渡期
例如:
理想的,前端工程不只要持续优化协做模式、提高开发效率,还应该保障开箱即用的上手体验、一鼓作气的衔接体验、无缝切换的升级体验
从面向过程的角度来看,前端工程是贯穿前端应用生命周期的一系列工程设施,用来保障前端应用的开发体验、质量和交付速度
具体的,前端工程围绕开发、构建、发布 3 条主线展开,以工具化、自动化等手段解决各个环节所遇到的问题。一方面控制前端开发的复杂度,提升前端生产效率,另外一方面下降架构升级、协做模式变化等带来的迁移、适配成本,提高开发体验
关注「前端向后」微信公众号,你将收获一系列「用心原创」的高质量技术文章,主题包括但不限于前端、Node.js以及服务端技术
本文首发于 ayqy.net ,原文连接:http://www.ayqy.net/blog/proc...