【青训营】-🎬前端工程化

简介: 【青训营】-🎬前端工程化

一. 理论:软件工程


1.1 定义


想尽一切办法规避软件的风险,并能更快、更快的完成软件项目的交付和维护。软件工程是研究和应用如何以系统性的,规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。


1.2 演进过程


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


image.png


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


二. 理论:前端工程化


2.1 定义


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

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


image.png


2.2 CI/CD


定义:


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


image.png


为什么CI/CD能实现高效率、高质量的交付目标呢?


因为CI/CD有自动化,持久化的特性。


2.3 DevOps


DevOps是一组过程、方法与系统的统称,用户促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合


image.png


2.4 为什么要做前端工程化?


降本提效,保障质量


  1. 提高效率(通过模块/组件化复用各项能力,以及自动化工具提高效率)
  2. 保障质量(规范化避免犯错,通过引入准入检测、监控、自动化测试等手段保障研发和运维期间的质量)
  3. 降低成本(提高质量,保障质量,以及自动化带来的开发难度的降低变相的就降低的整个软件开发的成本)


三、实战


如何做一个前端工程化的方案? 围绕规范化、模块化、自动化这三个维度,以提高效率,保证质量为目标展开。


image.png


3.1 整体架构

image.png


项目的部署更多可能会基于一个Docker容器,然后在Docker容器的基础之上部署一个Nginx,然后前端页面就可以做到正常访问。


打造一个前端工程化方案需要做什么?

  1. 定义研发流程和规范
  2. 打造工程脚手架
  3. 打造自动化CI/CD


image.png


3.2 准备工作


image.png


首先需要先装一个Docker,装完Docker之后需要装一个镜像,镜像需要用到Gitlab,去存储我们代码的平台,Jenkins是用来完成我们CI/CD的一个平台,Ngnix是一个Web容器,它能通过HTTP的协议让用户访问到。


image.png


3.3 制定和落地规范


  1. 参考业界规范,形成自己的规范
  2. 利用prettier、lint、git hook 在代码提交中和CI过程中强制落地规范


npm install -D prettier
npm install -D eslint
npm install -D husky
npm install -D lint-staged
复制代码


3.4 脚手架:项目构建


image.png


3.5 脚手架:项目创建&运行


npm install -g create-react-app 
复制代码
create-react-app my-project
cd my-project
npm start
复制代码


image.png


3.6 脚手架:代码提交&前置检测


配置Lint+利用GitHook(在commit之前执行指定函数)实现

image.png


配置各种Lint

image.png


利用GitHook在commit之前执行相关检测逻辑


  • husky操作Git hook钩子
  • lint-staged 针对git提交的文件进行一些操作


image.png

比如我们没有规范代码直接提交git commit -m "test",我们来看看它会报哪些错误。


image.png


CI/CD:项目集成构建和交付


SCM(源代码)——> 构建 ——> 打包 ——> 部署

image.png


image.png


四、深入


4.1 构建方案:No Bundle


简介


基于浏览器支持的Native Module,即无需将module构建成bundle直接使用。

优点:

  • 构建速度好
  • 加载性能好

缺点:

  • 有兼容性问题


image.png

业界方案:vite

image.png


4.2 部署方案


如何部署具备多台设备的集群?


蓝绿部署策略:


image.png


滚动升级策略:滚动启用新的,暂停老的,直到升级完成


image.png


灰度策略(金丝雀)按照流量的百分比,将指定百分比的流量导入到新版本中


image.png


五、总结


5.1 前端工程化方案的演进路径


image.png


最后


⚽这篇文章主要介绍了前端工程化是什么?为什么要有前端工程化?相信你一定收获很多~

⚾如果你对这篇文章感兴趣欢迎点赞关注+收藏,更多精彩知识正在等你!😘

相关文章
|
8月前
|
资源调度 前端开发 测试技术
前端工程化实践:从零搭建现代化项目构建流程
【4月更文挑战第6天】本文介绍了前端工程化的概念和重要性,包括模块化、自动化、规范化和CI/CD。接着,讨论了选择合适的工具链,如包管理器、构建工具和测试框架。然后,详细阐述了如何从零开始搭建一个基于React的现代化项目构建流程,涉及初始化、代码规范、测试、CSS处理、代码分割和CI/CD配置。最后,提到了持续优化与迭代的方向,如性能优化、类型检查和微前端。通过这样的实践,开发者可以提升开发效率和代码质量,为项目长远发展奠定基础。
345 0
|
8月前
|
前端开发 测试技术 持续交付
版本控制和团队协作:前端工程化的关键要素
版本控制和团队协作:前端工程化的关键要素
|
8月前
|
自然语言处理 前端开发 测试技术
前端工程化最佳实践:项目结构、代码规范和文档管理
前端工程化最佳实践:项目结构、代码规范和文档管理
|
6月前
|
JSON 前端开发 JavaScript
前端工程化:Webpack配置全攻略
【7月更文挑战第14天】
85 6
|
6月前
|
JSON 缓存 前端开发
前端工程化:Webpack配置全攻略
【7月更文挑战第18天】
62 1
|
7月前
|
缓存 前端开发 JavaScript
前端性能优化实践与工程化
前端性能优化实践与工程化
|
8月前
|
资源调度 JavaScript 前端开发
【前端开发---Vue2】史上最详细的Vue入门教程(六) --- 工程化开发和脚手架、组件注册
【前端开发---Vue2】史上最详细的Vue入门教程(六) --- 工程化开发和脚手架、组件注册
【前端开发---Vue2】史上最详细的Vue入门教程(六) --- 工程化开发和脚手架、组件注册
|
7月前
|
前端开发 安全 JavaScript
前端工程化实战 - 日程管理
前端工程化实战 - 日程管理
51 0
|
7月前
|
存储 JavaScript 前端开发
前端工程化
前端工程化
58 0
|
7月前
|
运维 前端开发 JavaScript
什么是前端工程化❓
什么是前端工程化❓
78 0