ChelesteWang / FE-Review

前端知识复盘与整理
Apache License 2.0
33 stars 8 forks source link

论前端工程化 #47

Open ChelesteWang opened 2 years ago

ChelesteWang commented 2 years ago

前端工程化是用软件工程手段去提高前端的工作效率,为了开发更易维护更健壮的程序,并且提高程序的性能、稳定性、可用性。 从代码规范到研发工具链,到 CI/CD 平台让开发人员减少更多手动进行重复性的工作。并实现团队内的统一。 我认为前端工程化是业务发展的必然产物,随着业务规模的增加,需要从工程管理以及人员协同进行约束,从指定开发团队规范到脚手架以及 CI / CD 流程,再到 serverless 以及低代码都是希望,可以提升开发的效率,让开发人员更多的关注于业务产品本身。能不让人做的就不必让人参与。

ChelesteWang commented 2 years ago

工程化研究的主要内容

ChelesteWang commented 2 years ago

开发提效

开发提效主要在于团队开发中的沟通成本以及软件开发的维护成本。以及提供开发中封装可复用的工具集。

常用工具

常用工具包括脚手架 、组件库 、逻辑库(hooks,请求库等)、mock 工具

脚手架

ChelesteWang commented 2 years ago

构建提效

这个阶段主要围绕我们的打包工具进行研究从 webpack 到新的 bundleless 打包器 vite ,或者使用 esbuild-loader 加快处理 JS 的速度,swc 替代 babel 转译等等都是构建提效的一部分

webpack 构建流程

webpack 性能优化

ChelesteWang commented 2 years ago

部署提效

打通优化适合前端项目的 CI/CD 部署流程,提升整体开发测试效率,自动测试,预发环境,测试环境,生产环境,每一个构建都有快照,上线如何进行流量控制等。这一块就涉及到容器化以及服务化相关知识了。

前端部署流程

本地部署的问题

ChelesteWang commented 2 years ago

依赖安装的基本流程

在对影响效率的问题进行分析之前,我们需要先了解一下前端依赖安装的基本流程阶段划分,这有助于分析不同场景下执行时间的快慢因素,排除各工具的细节差异。前端项目中依赖包安装的主要执行阶段如下:

优化手段

ChelesteWang commented 2 years ago

微前端

核心思想:先分后合

spicylemonhaha commented 2 years ago

微前端心圆群主能不能多说一些你的理解

ChelesteWang commented 2 years ago

微前端心圆群主能不能多说一些你的理解

微前端其实更多是在特定场景的一个工程化的实现,比如大型项目多人协同开发,各个子系统需要单独部署,或者是渐进式迁移一个复杂的旧系统,需要进行一些新的工程重构与业务开发。或者是在某种跨技术栈上的复用。