推广

微前端是什么,可以带来什么收益

iseeyu2年前 (2024-02-21)推广115

npm方式的繁琐更新流程

这些题让我们意识到,扩展前端开发规模以便于多个团队可以同时开发一个大型且复杂的产品是一个重要但又棘手的难题。

因此,早在2016年,微前端概念诞生了。

二. 微前端概念

Micro Frontends 官网定义了微前端概念:

Techniques, strategies and recipes for building a modern web app with multiple teams that can ship features independently.

翻译成中文:

微前端概念中文翻译

从Micro Frontends 官网可以了解到,微前端概念是从微服务概念扩展而来的,摒弃大型单体方式,将前端整体分解为小而简单的块,这些块可以独立开发、测试和部署,同时仍然聚合为一个产品出现在客户面前。可以理解微前端是一种将多个可独立交付的小型前端应用聚合为一个整体的架构风格。

值得留意的几个点:

  • 微前端不是一门具体的技术,而是整合了技术、策略和方法,可能会以脚手架、辅助插件和规范约束这种生态圈形式展示出来,是一种宏观上的架构。这种架构目前有多种方案,都有利弊之处,但只要适用当前业务场景的就是好方案。
  • 微前端并没有技术栈的约束。每一套微前端方案的设计,都是基于实际需求出发。如果是多团队统一使用了react技术栈,可能对微前端方案的跨技术栈使用并没有要求;如果是多团队同时使用了react和vue技术栈,可能就对微前端的跨技术栈要求比较高。

三. 微前端的优势

同步更新

对比了npm包方式抽离,让我们意识到更新流程和效率的重要性。微前端由于是多个子应用的聚合,如果多个业务应用依赖同一个服务应用的功能模块,只需要更新服务应用,其他业务应用就可以立马更新,从而缩短了更新流程和节约了更新成本。

微前端的同步更新

增量升级

由于历史包袱,有团队依旧存在使用着陈旧而庞大的前端单体模式,被过时的技术栈或赶工完成的代码质量死死拖住后腿,其程度严重到了让人想推翻重写。为了避免完全重写的风险 ,我们更加倾向于将旧的应用程序逐步地翻新,与此同时不受影响地继续为我们的客户提供新功能。

微前端能使我们更加自由地对产品的各个部分做出独立的决策,让团队能做到持续地增加新功能并且对原有的整体几乎不做修改,使我们的架构、依赖以及用户体验都能够增量升级。

另外,如果主框架中有一个非兼容性的重要更新,每个微前端可以选择在合适的时候更新,而不是被迫中止当前的开发并立即更新。如果我们想要尝试新的技术,或者是新的交互模式,对整体的影响也会更小。

简单、解耦的代码库

每个单独的微前端项目的源代码库会远远小于一个单体前端项目的源代码库。这些小的代码库将会更易于开发。更值得一提的是,我们避免了不相关联的组件之间无意造成的不适当的耦合。通过增强应用程序的边界来减少这种意外耦合的情况的出现。

当然了,一个独立的、高级的架构方式(例如微前端),不是用来取代规范整洁的优秀老代码的。我们不是想要逃避代码优化和代码质量提升。相反,我们加大做出错误决策的难度,增加正确决策的可能性,从而使我们进入成功的陷阱。例如,我们将跨边界共享域模型变得很困难,所以开发者不太可能这样做。同样,微前端会促使您明确并慎重地了解数据和事件如何在应用程序的不同部分之间传递,这本是我们早就应该开始做的事情!

独立部署

与微服务一样,微前端的独立可部署性是关键。它减少了部署的范围,从而降低了相关风险。无论您的前端代码在何处托管,每个微前端都应该有自己的连续交付通道,该通道可以构建、测试并将其一直部署到生产环境中。我们应当能够在不考虑其他代码库或者是通道的情况下来部署每个微服务。做到即使原来的单体项目是固定的按照季度手动发布版本,或者其他团队提交了未完成的或者是有问题的代码到他们的主分支上,也不会对当前项目产生影响。如果一个微前端项目已准备好投入生产,它应该具备这种能力,而决定权就在构建并且维护它的团队手中。

[图片上传失败…(image-c257af-1604988683906)]

自主的团队

将我们的代码库和发布周期分离的更高阶的好处,是使我们拥有了完全独立的团队,可以参与到自己产品的构思、生产及后续的过程。每个团队都拥有为客户提供价值所需的全部资源,这就使得他们可以快速且有效地行动。为了达到这个目的,我们的团队需要根据业务功能纵向地划分,而不是根据技术种类。一种简单的方法是根据最终用户将看到的内容来分割产品,因此每个微前端都封装了应用程序的单个页面,并由一个团队全权负责。与根据技术种类或“横向”关注点(如样式、表单或验证)来组成团队相比,这会使得团队工作更有凝聚力。

[图片上传失败…(image-fc4480-1604988683906)]

四. 微前端方案种类

目前国内微前端方案大概分为:

  • 基座模式:通过搭建基座、配置中心来管理子应用。如基于SIngle Spa的偏通用的乾坤方案,也有基于本身团队业务量身定制的方案。
  • 自组织模式: 通过约定进行互调,但会遇到处理第三方依赖等问题。
  • 去中心模式: 脱离基座模式,每个应用之间都可以彼此分享资源。如基于Webpack 5 Module Federation实现的EMP微前端方案,可以实现多个应用彼此共享资源分享。

其中,目前值得关注是去中心模式中的EMP微前端方案,既可以实现跨技术栈调用,又可以在相同技术栈的应用间深度定制共享资源,如果刚开始调研微前端的话,可以先尝试了解一下EMP微前端方案,或许会给你带来不错的使用体验。

具体的多方案深入对比分析,会在下一篇文章《对比多种微前端方案》详细解说,欢迎大家关注wiki博文首发更新。

EMP微前端wiki博文更新目录:

基础知识解析

微前端究竟是什么,可以带来什么收益

对比多种微前端方案

webpack5 module Federation原理学习

EMP的设计架构

多场景使用教程

react项目如何使用和接入EMP

vue项目如何使用和接入EMP

Vue和React项目如何互相远程调用

cocos2d 项目如何使用和接入EMP

教你基站搭建技巧

辅助插件的使用教程

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/57473.html

相关文章

合肥嘉若森抖音赛道选择很重要精准人群快速涨

合肥嘉若森抖音赛道选择很重要精准人群快速涨

原标题:合肥嘉若森抖音赛道选择很重要 精准人群快速涨粉 当我们发布的抖音账号的多个作品都在一个时间点跑量时,往往系统很难快速定位判断实时高赞高曝光的视频。为此我们所关注的抖音账户的作品分析中,可以按每天或者每个小时点赞数量来排序,发现增长最快的视频以及粉丝增长最快的作品。对于这样的情况。 抖...

百度自然排名优化可以给企业网站带来什么。

百度自然排名优化可以给企业网站带来什么。

目前,很多企业都不知道如何优化网站。事实上,首先,你必须明白,百度自然排名优化是一个很好的引流方式,让网站排名自然更高,这样你才能终得到更多用户的关注,你不必承担用户昂贵的点击费。那么现在如何优化搜索引擎呢?这就要求你了解搜索引擎的自然排名机制。今天,重蔚自留地seo优化编辑将与您探讨如何帮助您的企...

网站不收录的原因。

网站不收录的原因。

你网站的文章为什么不被收录 ,搜索引擎优化 1、新网站。本网站一般是新域名,网站重量较低,而且没有外部链资源,爬行速度也较低。这是一个典型的吊装网站。这类网站通常不收录在内。 2、网站没有收录在内。主页没有被收录,更不用说收录文章了。在开始对你的网站的其他内容感兴趣之前,蜘蛛必须先收录网...

正规SEO优化公司不仅保证优化效果,而且提升网站排名更稳定。

正规SEO优化公司不仅保证优化效果,而且提升网站排名更稳定。

企业要想在竞争激烈的市场中赢得更多用户的关注,如果不把优化到突出位置,就很难实现。如果你想提高网站的排名,通过不断优化网站关键词。 企业想要快速实现关键词排名,于是出现了很多“3天快速提高关键词排名,5天到首页”的相关广告推广。这让很多企业做好了搬家的准备,但是,关键词快速排名真的靠谱吗...

如何检查网站死链 网站死链的处理方法

如何检查网站死链 网站死链的处理方法

产生的方式有很多,很多时候都是能检查出来的,那么大家知道网站死链的方法有哪些吗?死链检查工具是什么呢?下面给大家介绍一下如何检查网站死链的内容。 如何检查网站死链 一、死链的产生 死链的产生有多种方式,通常情况下网站死链的产生包括网站改版、网站内容被删除、网站url产生规则的调整、网站外推时发...

网站排名优化的分期介绍。

网站排名优化的分期介绍。

网站的前期 SEO优化中心 网站的前期就是不断的给网站进行内容更新,给自己的站内补充一些比较好的文章。这个阶段搜索引擎还不是很了解我们的网站,如果在这个时期我们就坐那些违规的行为,无疑会给搜索引擎留下非常不好的印象,所以这个阶段我们还是老实点为好,在完善内容的同时就不要乱采集文章了。 SE...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片