【青训营】- 第10天前端工程化

337 阅读3分钟

软件工程化

1. 定义

想尽一切办法规避项目的风险,并能更快、更好的完成软件项目的交付和维护。

软件工程是研究和应用如何以系统性、规范性、可定量的过程化方法 去开发和维护软件, 以及如何把经过时间考研而证明正确的管理技术 和当前能够得到的最好的技术方法结合起来。

理论部分很有意思,就像文化沙漠遇到水。

2. 终极目的

多快好省-快速、高质量的完成软件工程(项目、系统)的交付。

交付周期越长,变化的可能性就越大,项目可能面临的风险概率就越高。

3. 演进过程

a. 瀑布流【略】

b. 敏捷开发【设计-开发-测试】

强调小步快跑(反复迭代、交付),交付产品周期短。

c. DevOps【设计-开发-测试-部署】

与敏捷类似,当强调开发和运维部署更加亲密无间(追求极致的效率和自动化)。

DevOps时敏捷开发升级版。

软件工程的演进过程和最终目的,想到我的座右铭:天下武功,唯快不破。

《整体架构图》的元素

前端研发规范 前端应用 前端标准研发流程 生成:工程模板生成、代码片段生成 构建:测试构架、打包构架 准入:规范检查、自动化测试 部署:服务部署、多环境管理 CI/CD: Jenkins Git/Github、代码(模板)生成器、webpack、babel、pretier Nginx Docker

前端工程化

【软件工程 + 前端 = 前端工程化】

前端工程化,是一种通过规范化、模块化、自动化等手段提高前端项目在研发、运维阶段的效率、质量。

前端工程化
方法规范化研发规范规范化过程:沉淀研究的各个环节标准规范,统一研发流程和规范,为规模和自动化提供可能性。
模块化基于模块(组件)开发复用模块:将各项功能基于独立的模块去拆分开发,尽可能地做到模块级别的服用,从而大大提高整体效率和降低研发成本。
自动化CI/CD自动化处理:基于定义的研发流程,建立一套自动化流水线,当特定动作发生(定期触发、Git Push)时,自动触发流水线执行CI/CO任务。
理念DevOps【设计-开发-测试-部署】

CI/CD

Continuous Integration/Continuous Delivery(Deployment)持续集成/持续交付(部署)

它是一种工程化方法论,即通过自动化的手段、实现能持续的对项目进行构建、交付、部署,从而达到高效率、高质量的交付目标。

不得不说,老师画得图真的太好了,好生动好形象啊 image.png

CI/CD过分好了

CI/CD持续集成/继续交付(部署)
持续集成自动构建:当有新的变更代码提交(上传到代码仓库git push)之后,通过自动化的方式自动完成项目工程的构建、集成、测试等工作,并生成最终的发布产品。
持续交付自动存储:能够将每次持续集成的构建记录、集成记录、测试记录、发布产品记录并保存下来,方便后续的追踪、监控、部署。
持续部署自动部署:将指定(某一个持续集成的产品)的最终产品自动部署到生产环境中。