这5个理由告诉你为什么要采用微前端架构

news2024/10/6 12:35:19

微前端是一种前端开发的架构方法,已经变得越来越流行,这也预示着它很可能代表 Web 开发的未来。所以学习这种架构带来的好处对你的应用程序和开发团队是不言而喻的。

本文将分享我和我的团队使用这种方法两年来的经验所得,以及帮助你分析在你的下一个项目中采用它的重要理由。

什么是微型前端架构?

在过去的几年里,IT公司已经开始将大型软件分解成更小的、更容易管理的模块。这种方法背后的想法是拥有许多可以独立开发、测试和部署的服务。

这就是微服务架构在后台开发方面的作用。但同样的方法也可以应用于前端开发,它被命名为微前端架构。在 Martin Fowler 的官方网站上,微前端方法被定义为。

一种架构风格,将可独立交付的前端应用程序组合成一个更大的整体

这种前端开发的架构方法已经变得越来越流行,因为传统的单片式方法存在着众所周知的隐患。主要是因为前端软件往往增长迅速,而当使用单体架构时,一切都变得更加难以维护。

另一方面,微前端使你有能力实现一个不太复杂和麻烦的架构。特别是,由于微前端的方法,你可以将整个应用程序分割成小的、独立的部分。然后,它们中的每一个都可以由不同的前端团队来实现,甚至可以使用不同的技术。这确保了与后端微服务架构相同的可扩展性、灵活性和适应性。此外,这种方法允许你在同一个网页上混合使用库或不同框架开发的微型前端组件。

所以,微前端现在是IT界的一个趋势,而且这种方法正被越来越多的人采用。

选择微前端的5个好处

使用微前端开发要了解这种前端开发方法的真正优势是什么。

现在,让我们来看看使用它的五个最相关的理由,这些理由是我作为一个使用微前端工作了两年多的前端开发者的经验总结。

1、让开发者发挥最佳状态

我工作的团队由具有不同背景和技能的开发人员组成。有些是 React 的专家,有些更擅长 Vue.js 或 Angular ,有些人喜欢用 JavaScript 编码,有些人喜欢用TypeScript。

最初,这种现象成为了团队发展的一个障碍。唯一的解决方案是找到共同点,尽管这种选择会迫使一些开发人员学习新技术,并失去他们的专业知识。因此,我们寻找解决方案,并决定采用微型前端架构方法。

得益于此,我们能够将原来的团队分成多个团队,每个人都能在其中表现自己的最佳状态。这是因为不同的团队可以根据他们要处理的业务逻辑,在架构、测试和编码风格方面做出最佳决定。另外,这种方法本质上导致了代码和风格的隔离,使每个团队独立于其他团队。

在最终结果方面,微前端也是有帮助的。这是我们的团队在完全接受这种方法后的体会和结论。事实上,有多个小团队可以自由使用他们喜欢的技术,这意味着他们本质上受到的限制更少,因此更有动力去写出更高质量的代码。

2、允许采用不同的技术栈

由于微型前端是由独立的小块组成的,所以每一个都可以使用不同的技术栈来实现。这是一个令人难以置信的巨大优势。首先,因为起始团队可以根据特定技术栈的专长分成许多小团队,这也尊重了单一责任原则。其次,由于许多技术栈会在同一个项目中使用,因此雇用新的开发人员变得更加容易。

此外,微前端的方法实际上消除了对某一特定技术的锁定现象,至少它大大减少了这一现象。这是因为你的团队可以随时决定选择一个新的技术栈,而不必翻译以前开发的东西。另外,微前端架构所包含的每块内容肯定比前端单体要小,把它翻译成新的技术会花费更少的时间。

自从我们的团队接受了微前端的方法,我们就被激励着去尝试新的技术、库和框架。事实上,每当你必须在你的应用程序中嫁接一个新的部分,你可以决定采用一个全新的技术栈。这代表了一个宝贵的机会,可以学习如何使用市场上的许多 JavaScript 框架。

3、开发和部署变得更快

通过采用微前端我们作为一个团队的前端开发过程得到了高度改善。主要原因是,我们现在不再有一个大的团队被迫处理不可避免的沟通开销,而是属于较小的独立团队,同时处理不同的功能,而不考虑实施细节。

你可以想象,这也代表了在发布新功能时的一个巨大进步。主要原因是与大型单片机软件相比,构建小型微前端更快、更容易。因此,你的部署时间也会大大改善。事实上,每当一个团队完成了一个功能的工作,他们就可以在线部署,而不需要等待。

换句话说,微型前端应用程序是基于独立的团队同时进行独立的功能工作。不得不说这是一个实现更高发布率的机会,特别是随着小团队数量的增加。

4、它使你的网络应用更易维护

如果你曾经处理过大型的应用程序,你就知道它们很容易变得难以维护,特别是当它们是单体的,而且必然会越来越大。而微前端是基于分而治之的方法,这意味着,如果你的网络应用程序选择这种架构,你可以使每一个业务需求更容易测试和维护。

这一点我们的团队很快就学会了。测试大型单体应用是很有挑战性的,需要大量的时间,我们都知道这一点。但自从我们采用了微前端的方法,一切都变了。现在每个团队负责测试其开发的功能,这些功能远远小于一个完整的前端应用程序。这就加快了开发的速度。这加快了整个过程,使其更容易。因此,现在没有人害怕测试了。而且,每个独立的团队现在可以自由地采用他们喜欢的测试工具和技术。

此外,处理小块的东西意味着理解正在发生的事情的流程变得更加实惠。这导致了建立在许多小部件上的网络应用程序更加可靠,并且在需要时容易被维护。

5、它代表了前端开发的未来

根据《2020年微服务状况报告》,24%的开发人员已经使用了微前端。这意味着越来越多的公司正在利用这种方法的力量,预计几个流行的前端应用程序将在不久的将来采用这种方法。换句话说,当涉及到前端开发时,微前端可能代表下一步的首选。

我的团队有机会处理这个问题,我毫不怀疑它代表了前端单体开发方法的自然演变。另一方面,它仍然是一个相对较新且有些不成熟的技术,还有很长的路要走。

与此同时,Web 应用程序也在不断发展,但我和我的团队并不害怕说微前端是前端开发的自然演变。

总结

在这篇文章中,我们根据我和我的团队两年来在日常工作中积累的经验,总结了采用微前端架构方法的五个最重要的原因。

虽然没有后端开发中使用的微服务架构那么流行,但它背后的想法几乎是一样的。微前端架构现在成为趋势并不奇怪,它可能代表了前端开发的自然演变。这也是为什么了解它是不可缺少的,学习现在采用它的主要原因就是这篇文章的目的。

开发界的强者

介绍了微前端,还有一款工具值得推荐。JNPF开发平台,很多人都用过它,它是功能的集大成者,任何信息化系统都可以基于它开发出来。

原理是将开发过程中某些重复出现的场景、流程,具象化成一个个组件、api、数据库接口,避免了重复造轮子。因而极大的提高了程序员的生产效率。

官网:www.jnpfsoft.com/?csdn ,如果你有闲暇时间,可以做个知识拓展。

这是一个基于Java Boot/.Net Core构建的简单、跨平台快速开发框架。前后端封装了上千个常用类,方便扩展;集成了代码生成器,支持前后端业务代码生成,满足快速开发;框架集成了表单、报表、图表、大屏等各种常用的Demo方便直接使用;后端框架支持Vue2、Vue3。

为了支撑更高技术要求的应用开发,从数据库建模、Web API构建到页面设计,与传统软件开发几乎没有差异,只是通过低代码可视化模式,减少了构建“增删改查”功能的重复劳动。

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

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

相关文章

仿弹壳特工队,绝地反击活动使用电池翻格子小游戏(JAVA小游戏)

近来太无聊,玩了一款割草游戏,里面有个活动感觉挺好玩的,像扫雷一样,寻找线索(灯泡),在这里使用JAVA语言也简单实现下游戏。 先上效果图,鼠标点击对应的块,可以展开相连的方块,点击…

nvm集合node版本,解决新版本jeecgboot3.5.3前端启动失败问题

jeecgboot前端3.5.3页面如下 使用之前的pnpm启动会报错,pnpm是node进行安装的,查询后发现,vue3版本的页面至少需要node16版本,我之前的版本只有15.5,适用于vue2 那么我将先前的node15.5版本删除,然后安装…

【知识分享】C语言应用-易错篇

一、C语言简介 C语言结构简洁,具有高效性和可移植性,因此被广泛应用。但究其历史的标准定义,C语言为了兼容性在使用便利性作出很大牺牲。在《C陷阱与缺陷》一书中,整理出大部分应用过程中容易出错的点,本文为《C陷阱与…

ffmpeg把RTSP流分段录制成MP4,如果能把ffmpeg.exe改成ffmpeg.dll用,那音视频开发的难度直接就降一个维度啊

比如,原来我们要用ffmpeg录一段RTSP视频流转成MP4,我们有两种方案: 方案一:可以使用以下命令将rtsp流分段存储为mp4文件 ffmpeg -i rtsp://example.com/stream -vcodec copy -acodec aac -f segment -segment_time 3600 -reset_t…

ubuntu20.04+ROS noetic在线运行单USB双目ORB_SLAM

双目摄像头主要有以下几种,各有优缺点。 1.单USB插口,左右图像单独输出2.双USB插口,左右图像单独输出(可能存在同步性问题)3.双USB插口,左右图像合成输出4.单USB插口,左右图像合成输出 官方版…

【C++】线程安全问题

原子类型非线程安全 #include <iostream> #include <thread>int main() {int num 0;int count 100000;std::thread thread1([&](){for(int i 0; i < count; i){num;}});std::thread thread2([&](){for(int i 0; i < count; i){num;}});std::thr…

jsp+servlet零食商城java网上购物超市Mysql源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目介绍 项目名:网上零食商城 技术栈 jspservlet 系统有3权限…

动静分红,循环购模式:微三云门门

动静分红&#xff0c;循环购模式&#xff1a;微三云门门 商业模式概述&#xff1a; 动静分红&#xff0c;循环购模式是一种创新商业模式&#xff0c;旨在解决平台用户复购率和C端裂变的难题。该模式以能量值和贡献值为核心资产&#xff0c;结合动态和静态奖金池&#xff0c;为…

产品展示视频拍摄制作流程

通过精心策划和制作的产品展示视频&#xff0c;展示产品的独特魅力和卓越功能。激发受众对产品的兴趣和购买欲望。为了确保产品展示视频的制作质量和效果&#xff0c;需要团队一起探讨具体的拍摄制作流程。深圳产品活动视频制作公司老友记小编为您分析产品展示视频的拍摄制作过…

中国人民大学与加拿大女王金融硕士——为什么读金融硕士,这些理由够不够?

金融硕士要不要读&#xff1f;身在金融行业的我们拥有的本科学历还够用吗&#xff1f;随着教育的发展&#xff0c;高学历的人才越来越多。金融行业好多职位的招聘门槛已经提升到硕士学历了。面对职场高学历人才的涌入&#xff0c;对于在职的我们来说&#xff0c;是一种潜在的压…

【STM32】IIC的初步使用

IIC简介 物理层 连接多个devices 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中&#xff0c;可连接多个 I2C 通讯设备&#xff0c;支持多个通讯主机及多个通讯从机。 两根线 一个 I2C 总线只使用两条总线线路&#xff0c;一条双向串行数…

linux————pxe网络批量装机

目录 一、概述 什么是pxe pxe组件 二、搭建交互式pxe装机 一、配置基础环境 二、配置vsftpd 三、配置tftp 四、准备pxelinx.0文件、引导文件、内核文件 一、准备pxelinux.0 二、准备引导文件、内核文件 五、配置dhcp 一、安装dhcp 二、配置dhcp 六、创建default文…

要用linux,不会shell 基本语法搞不来~

01.变量 1、环境变量 echo $PATH 2、自定义变量 hello"hello_world" echo $hello 3、存储 Linux 命令执行结果作为变量 (2 种方式&#xff0c;推荐使用第二中&#xff0c;第一种是 ~键上面的斜点比较难识别) filesls -al path(pwd)注意点定义变量号两边不能有空…

koa路由自动注册

安装 pnpm install require-directory 路由加载 static initRouters() {// 绝对路径const apiDir ${process.cwd()}/router;// 自动加载路由requireDirectory(module, apiDir, {visit: whenLoadModule});// 判断加载模块是否是路由function whenLoadModule(obj) {if (obj i…

小白带你学习linux的ELK日志收集系统

目录 目录 一、概述 1、ELK由三个组件构成 2、作用 3、为什么使用&#xff1f; 二、组件 1、elasticsearch 2、logstash 3、kibana 三、架构类型 1、ELK 2、ELKK 3、ELFK 4、ELFKK 四、ELK日志收集系统集群实验 1、实验拓扑 2、环境配置 3、 安装node1与node2…

算法设计 || 第12题:12皇后回溯算法(C语言代码)

之前关于8皇后更详细总结&#xff1a; 算法设计 || 实验四 回溯算法-八皇后问题&#xff08;纯手敲保姆级详细讲解小白适用头歌解析&#xff09;_MSY&#xff5e;学习日记分享的博客-CSDN博客 学习的功夫一定要在平时&#xff0c;这样你考试前不必慌张&#xff0c;不用着急&a…

Leetcode54螺旋矩阵

思路&#xff1a;用set记录走过的地方&#xff0c;记下走的方向&#xff0c;根据方向碰壁变换 class Solution:def spiralOrder(self, matrix: list[list[int]]) -> list[int]:max_rows len(matrix)max_cols len(matrix[0])block_nums max_cols * max_rowscount 1i 0j…

这个 web 自动化测试框架真香 ,selenium进阶pro plus版

在 web 自动化测试当中&#xff0c; selenium 架构应该是很难绕过的&#xff0c;很多宣称要超 selenium 的下一代 web 自动化测试框架最终都败下阵来。 不过&#xff0c; selenium 的 api 确实比较复杂&#xff0c;所以也有很多库尝试对他进行上层封装&#xff0c;splinter 是其…

Ubuntu18.04安装cuDNN

注册账号 https://developer.nvidia.com/rdp/cudnn-archive 该网站下载安装包需要先进行注册。登录成功后&#xff0c;找到与CUDA对应的版本。 选择Linux版本进行下载。 下载后的格式为.tar.xz 解压 tar xvJf cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz配置环境 su…

全新配色 smart 精灵#1 BRABUS性能版于成都车展正式上市

新奢智能纯电汽车品牌smart携旗下全系车型&#xff0c;盛大亮相第二十六届成都国际汽车展览会&#xff08;4号馆H402展台&#xff09;。此次车展上&#xff0c;smart首次公开披露智能驾驶技术迭代战略路线、“南拓西进”全球化市场布局策略&#xff0c;加速成为全球领先的智能纯…