为什么想到微前端,是巨石应用?

news2025/7/27 19:27:28

为什么想到微前端,是巨石应用?

现代的前端应用的发展趋势正在变得越来越富功能化,富交互化,也就是传说中的SPA(单页面应用);这样越来越复杂的单体前端应用,背后的后端应用则是数量庞大的微服务集群。被一个团队维护的前端项目,随着时间推进,会变得越来越庞大,越来越难以维护。所以我们给这种应用起名为巨石单体应用。

举例: 一个持续多年的应用,经历几年的业务的更新迭代,当项目发展到一定程度的时候就会遇到以下问题

  1. 业务模块之间不断的堆叠,交错引用,业务耦合如何治理?
  2. 老技术、老代码不敢动,新技术、新架构又想用?
  3. 万年技术债?既要跟随业务敏捷迭代,又要保证代码库向好发展,旧的框架类库如何平稳升级?
  4. 一个项目多个团队开发,你冲突我,我冲突你,如何解决并行开发的冲突?
  5. 代码库持续膨胀,难以维护的项目代码,是屎上雕花?还是从头再来?

什么是微前端?

现代复杂的web app或者网站,通常由很多 相对独立的功能模块组合而成,而对这些模块负责的应该是 相互独立的多个团队。这些独立的团队由于专业分工不同,会负责着 特定的业务领域,以及完成特定的开发任务。这样的团队,通常在人员组成方面囊括了从前端开发到服务端开发,从UI实现到数据库设计这样端到端的跨职能人员构成。

微前端是一种类似于微服务的架构,是一种由独立交付的多个前端应用组成整体的架构风格,将前端应用分解成一些更小、更简单的能够独立开发、测试、部署的应用,而在用户看来仍然是内聚的单个产品。使用两个简单的数学方程式理解

独立小应用A+独立小应用B+… +独立小应用N = 产品

品牌 + 商家 + 风控 + … + 营销 = 电商管理平台

它主要解决了两个问题:

  • 随着项目迭代应用,越来越庞大,难以维护;
  • 跨团队或跨部门协作开发项目导致效率低下的问题;

定义:微前端并不是指某一具体的技术,而是一种整合了技术、策略和方法的宏观架构方案,是一种将多个可独立交付的小型前端应用聚合为一个整体的架构风格。

可以从理解面向垂直划分的系统 这一思想,理解微前端方案:**整个系统被垂直分割成几个松散耦合的应用程序。**每个“垂直”都负责一个单一的业务领域,如“订单”、“搜索与导航”、“产品”等。它有自己的表示层、持久层和一个单独的数据库。从开发的角度来看,每一个垂直都是由一个团队实现的,不同系统之间没有代码共享。

面向垂直划分的系统的前端架构

image-20230307105638306

什么时候用

如果团队成员多、项目类型多,并且想将其打造成「内聚的单个产品」:

  • 项目的团队成员来自多个团队
  • 项目内多条迭代出现需求挤兑,影响测试、发布效率
  • 跨空间、跨时间维度导致团队内技术体系无法统一
  • 多个前端应用需要达到「内聚的单个产品」特征
  • 「内聚的单个产品」中部分内容希望达到独立开发、独立发布、独立测试、独立灰度等能力
  • 中后台项目,时间跨度长,演变成巨石应用,越来越难以维护。

下面图片列出的几个巨石应用中存在的问题点,自己动手打个勾,看看勾中了几个🤭

image-20230307105226251

项目是否有上述这些情况呢?我们该如何解决这些问题呢?

这时候就到了这篇文章介绍的”主角”出场了,dangdangdang~~:考虑使用 “微前端”这个架构思想

现在这么多框架,该怎么选择微前端技术方案?

要知后事如何,请听下回分解🤭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/394637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32和emWin必须知道的那些事

emWin 是由德国 SEGGER 公司开发,可为图形 LCD 设计提供高级支持,极大简化了 LCD 设计。 为恩智浦ARM 微控制器用户免费提供的 emWin 图形库。在国内做嵌入式系统的大部分都使用 emwin, 其简单来说就是一套图形库。STemWin是SEGGER公司授权给…

HTML DOM 事件监听器

通过JavaScript,我们可以给页面的某些元素添加事件的监听器,当元素触发相应事件的时候监听器就会捕捉到这个事件并执行相应的代码。addEventListener() 方法实例当用户点击按钮时触发监听事件:document.getElementById("myBtn").ad…

Balsamiq Wireframes 安装配置

文章目录Balsamiq Wireframes 安装配置一、简介二、软件特色1、零学习曲线,随时随地提供强大功能2. 专为协作而设计3. 每个人的第一个 UX工具三、Balsamiq Wireframes功能介绍1、工具列2、快速添加工具3、UI库4、帆布5、导航器面板6、键盘快捷键:四、安装…

经纬恒润再传佳讯,斩获大奖

阳春二月,经纬恒润屡传佳讯,凭借产品、研发等多方面的出色表现,再次斩获东风柳汽“优秀供应商”和广汽传祺“科技创新奖”,以实力印证良好口碑,不忘初心,载誉而行! 东风柳汽:优秀供…

【信号量机制及应用】

水善利万物而不争,处众人之所恶,故几于道💦 目录 一、信号量机制 二、信号量的应用 >利用信号量实现进程互斥   >利用信号量实现前驱关系   >利用记录型信号量实现同步 三、例题 四、参考 一、信号量机制 信号量是操作系统提…

现在招个会自动化测试的人是真难呀~你会个锤子的自动化测试

现在招个会自动化测试的人是真难呀~ 前一段时间公司计划要招2个自动化测试到岗,同事面试了十几个来应聘的人,发现一个很奇怪的现象,在面试的时候,如果问的是框架API、脚本编写这些问题,基本上所有人都能对答如流&…

centos6下为Rstudio安装多版本R

之前的R版本太旧,不少包装不上,需要安装新版本的R: R --version R version 3.6.0 (2019-04-26) -- "Planting of a Tree"于是下载最新版R: 因为没有证书,需要加上最后面的参数. wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-4/R-4.2.2.tar.gz --no…

MySQL OCP888题解042-审计日志格式

文章目录1、原题1.1、英文原题1.2、中文翻译1.3、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3.1、知识点1:审计日志3.1.1、审计日志是什么3.1.2、审计日志格式4、总结1、原题 1.1、英文原题 Consider the MySQL Enterprise Audit plugin. You are check…

好使!NAS中傻瓜式配置反向代理及SSL证书,提升网络安全性!

对于有NAS或者有个人主机的朋友来说,将机器映射到外网是基本操作。 但是一般来说,能直接从外网访问的往往仅有80和443端口。事实上,运营商一般把家庭宽带的这两个端口都封了,所以如果我们想要从外网访问自己家中机器部署的服务&a…

【Ajax】异步通信

一.概述 概念:AJAX(Asynchronous JavaScript And XML):异步的 JavaScript 和 XML 作用: 与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据 使用了AJAX和服务器进行通信,就可以使…

设计模式-第11章(观察者模式)

观察者模式观察者模式观察者模式的特点老板回来了观察者模式 观察者模式又叫发布订阅模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能…

nextcloud挂载阿里云oss 过程

1. 情景 : 已经使用docke-compsoe 搭建起来nextcloud 并投入使用 ,现在内存不够需要挂一个oss nextcloud挂载阿里云oss大概思路 : 使用阿里官方提供的 ossfs , 将oss挂载到服务器目录中 , 在docker-compose中的 做容…

ArcGIS10.6“License许可启动无响应”解决方法

以下是我尝试过的方法关闭防火墙(很必要)替换 “Service.txt” 及 "ARCGIS.exe"文件(感觉没什么用)修改服务设置(很必要)更改注册表(可有)更改端口号(好像没什…

My RuoYi 微服务

一 快速了解 文档(特别详细):介绍 | RuoYi 介绍 技术架构(图):介绍 | RuoYi快速了解 技术选型 系统环境主框架持久层视图层内置功能 用户管理:用户是系统操作者,该功能主要完成系…

HBase---HBase基础语法

HBase基础语法 文章目录HBase基础语法基本操作进入 HBase 客户端命令行查看命名空间查看命名空间下的表创建命名空间创建表查看表描述禁用/启用删除表新增列族删除列族更改列族存储版本的限制put 增加数据get 查看数据get条件查询删除指定列族下的指定列删除指定行全表扫描全表…

Java线程池之线程复用原理解析

什么是线程复用 在Java中,我们正常创建线程执行任务,一般都是一条线程绑定一个Runnable执行任务。而Runnable实际只是一个普通接口,真正要执行,则还是利用了Thread类的run方法。这个rurn方法由native本地方法start0进行调用。我们…

2023最新设计模式常见面试题汇总进大厂必备

2023最新设计模式常见面试题汇总1.说一下设计模式?你都知道哪些?2.什么是单例模式?3.什么是简单工厂模式?4.什么是抽象工厂模式?5.什么是观察者模式?1)定义观察者(消息接收方&#x…

201809-3 CCF 元素选择器 满分题解(超详细注释代码) + 解题思路(超详细)

问题描述 解题思路 根据题意可以知道在查询中可以分为两种情况 第一种是查询一个标签选择器或者id选择器(可以称为一级查询) 第二种就是存在大于两级的查询(可以称为多级查询) 显然第一种查询需要存储每一种元素在内容中所有出现…

2023 最新计算机视觉学习路线(入门篇)

计算机视觉是人工智能的一个领域,专注于教计算机解释和理解视觉世界。它涉及使用算法、深度学习模型和其他技术使机器能够识别图像或视频中的对象。计算机视觉可用于各种任务,如面部识别、目标检测、图像分割、运动估计和跟踪等。重要性计算机视觉的重要…

Leetcode DAY 57: 回文子串 and 最长回文子序列

647. 回文子串 题目: Given a string s, return the number of palindromic substrings in it. A string is a palindrome when it reads the same backward as forward. A substring is a contiguous sequence of characters within the string. 1、暴力解法&#…