登录/注册
占位
占位
浏览量
占位
粉丝
占位
关注
微前端架构初探以及我的前端技术盘点
2020-07-04 18:59:38 2020-07-04
632
1

前言

最近几年微前端一直是前端界的热门议题, 它类似于微服务架构, 主要面向于浏览器端,能将一个复杂而庞大的单体应用拆分为多个功能模块清晰且独立的子应用,且共同服于务同一个主应用。各个子应用可以独立运行、独立开发和独立部署。

微前端架构概念的诞生及应用对于提供复杂应用服务的企业来说显然是一种机遇, 同样也是一种挑战.本文主要就微前端架构的概念和实现方案做一个总结和复盘,并且通过一个实际案例来实践微前端架构,希望能对同样有此需求的朋友们提供一些帮助和思路.

你将收获

  • 什么是微服务以及微服务能给企业带来什么

  • 微前端架构概念及方案

  • umi下的微前端架构方案实战

  • 一个程序员的技术复盘与展望

正文

在总结微前端架构之前,让我们来先看看微服务是什么.

1.什么是微服务以及微服务能给企业带来什么

微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作(和出现故障)时不会相互影响。

传统的web软件开发架构往往如下图所示:

虽然我们在传统应用中可以采用模块化来拆分业务逻辑和开发方式,但最终它们会打包并部署为单体式应用。这种架构往往更适合中小型项目, 开发简单直接,更适合集中化管理应用.但往往也会存在很多缺点,比如可扩展性不足,相同或者相似业务复用困难,部署时间长, 业务复杂之后很难维护等问题.

对于复杂系统和业务来说,我们一般会采用微服务架构。其思路是将一个完整的应用分解为小的、互相连接的微服务,每个服务完成特定的功能, 并且某些特定的服务还能为其他服务提供API接口.

由上图可以发现微服务给我们带来的好处:

  • 将一个庞大的单体拆解成多个子服务,大大降低了开发复杂度

  • 任务边界划分明确, 每个子服务之间单独开发, 不同服务之间可并行由不同的开发人员开发,提高开发效率

  • 更细粒度的加强了模块化进程, 可维护性和可读性更高

  • 团队之间只要制定好API约定, 那么不同成员或者团队可以采用不同的技术开发服务

  • 可用共享服务, 使得不同子服务可组合实现更复杂的功能

  • 每个微服务可独立部署发布,使得自动化CI(持续集成)/CD(持续交付)成为可能

但微服务并不是任何场景下都是合适的, 微服务的目标是充分分解应用程序,以促进敏捷开发和持续集成部署。在部署微服务时我们需要做好适当的边界划分,并处理不同微服务之间的并发问题,这些都是对整个项目带来的挑战,需要更加专业的技术成员来把控.目前市面上也有很多开源的微服务框架比如Dubbo, Spring Cloud等,笔者之前公司采用的Spring Cloud就是一个很好的微服务架构方案.

2.微前端架构概念及方案

2.1 理解微前端架构

上面简单介绍了一下微服务架构,接下来我们进入主题,来聊聊微前端. 微前端微服务实现的目的类似,都是将应用由单一的单体应用转变为多个小型子应用,差别就在于:

  1. 微前端应用于浏览器端,主要是对web应用进行拆解,最后将不同子系统(模块)聚合成一个完整的应用.

  2. 微前端主要目的是聚合

暂无评论