前端工程化
理论
软件工程
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最后的技术方法结合起来。
前端工程
软件工程+前端 = 前端工程化
前端工程化是一种通过规范化、模块化、自动化等手段,提高前端项目在研发、运维阶段的效率、质量。
规范化
规范化过程:沉淀研发流程的各个环节标准规范,统⼀研发流程和规范,为模块和⾃动化提供可能性。
模块化
复⽤模块:将各项功能基于独⽴的模块去拆分开发,尽可能的做到模块级别复⽤,从⽽⼤⼤提⾼整体效率和降低研发成本。
自动化
⾃动化处理:基于定义的研发流程,建⽴⼀套⾃动化流⽔线,当特定动作发⽣(定期触发、Git Push)时,⾃动触发流⽔线执⾏CI/CD任务。
CI/CD
Continuous Integration/Continuous Delivery(Deployment) 持续集成/持续交付(部署)它是⼀种⼯程化⽅法论,即通过⾃动化的⼿段、实现能持续的对项⽬进⾏构建、交付、部署,从⽽达成⾼效率、⾼质量的交付⽬标。
持续集成
⾃动构建:当有新的变更代码提交(上传到代码仓库 git push)之后,通过⾃动化的⽅式⾃动完成项⽬⼯程的构建、集成、测试等⼯作,并⽣成最终的发布产物。
持续交付
⾃动存储:能够将每次持续集成的构建记录、集成记录、测试记录、发布产物记录并保存下来,⽅便后续的追踪、监控、部署。
持续部署
⾃动部署:将指定(某⼀个持续集成的产物)的最终产物⾃动部署到⽣产环境中。
为什么CI/CD能实现⾼效率、⾼质量的交付⽬标呢?
- 自动化
- 持久化
DevOps是⼀组过程、⽅法与系统的统称,⽤于促进开发、技术运营和 质量保障(QA)部⻔之间的沟通、协作与整合。
为什么要做?
降本提效,保障质量
- 提高效率(通过模块/组件化复用各项能力,以及自动化工具提高效率)
- 保障质量(规范化避免犯错,通过引入准入检测、监控、自动化测试等手段保障研发和运维期间的质量)
- 降低成本(提高质量、保障质量,以及自动化带来的开发难度的降低变相的就降低的整个软件开发的成本)
如何做一个前端工程化方案?
围绕规范化、模块化、⾃动化这个三个纬度,以提⾼效率,保证质量为 ⽬标展开。
规范化
建⽴规范
- 建⽴符合实际需求的规范
- 确保规范被落地执⾏
模块化
沉淀(使⽤)模块
- 通过可复⽤模块提升效率和质量(⼯具、 平台、组件、函数库等)
自动化
自动化执行
- 将研发流程中涉及到的⼯作⾃动化完成