-
Notifications
You must be signed in to change notification settings - Fork 223
《教你基站搭建技巧》
本文将讲解基站是什么,基站的作用,以及怎么划分基站等问题,来进一步让大家深入理解EMP微前端方案,更好的搭建属于自己的微前端生态。
在《什么是微前端》一文中,我们已经了解到emp微前端是去中心模式的微前端,其核心就是每个应用都可以独立部署彼此分享资源。但多个应用项目之间把可能有某业务逻辑模块或者其他是可复用的资源直接共享出去的话,会带来以下几个问题:
-
共用模块稳定性差 多个应用项目间的共享资源很容易因应用的更新迭代以及应用的上下线而影响公共模块的稳定性,从而引起多米勒效应。
-
共用资源混乱,难以管理 多应用共享资源代表我们所有用emp微前端的项目都可以抽离且把资源共享出去,这就意味着我们所有人都不清楚哪些项目共享了哪些资源,容易造成资源浪费,以及重复造轮的局面。
针对这些问题,我们借鉴npm包的管理方式把共用的模块统一,做成只提供共用资源不涉及任何应用的站点,我们把它称作基站。
我们把不涉及任何业务逻辑,且高度可复用的资源按照功能、作用抽离组成的基站,我们把其称作公共基站
以我们的antd后台框架为例,我们的项目架构一般如下:
|--src
|--components // 框架公共组件
|--configs // 配置项
|--helpers // 公共方法
|--pages // 页面
|--stores // 状态管理store层
|--assets //静态资源
|--types // typescript类型文件
....
其中框架公共组件(components),公共方法(helpers)以及状态管理(store)是复用性比较高的,因此我们把其分别做成公共基站:
-
emp-lib公共基站:提供http、query、login等不依赖框架的公共方法
-
emp-antd-components:提供如layout、router等基于antd框架的公共组件
-
emp-stores:提供用户状态,配置状态等状态管理方法
适用于每个站点有各自独立功能且独立部署的项目,我们把项目的公共业务资源抽组成独立的基站,我们把其称作业务基站
-
什么时候需要业务基站?
1.需要部署2个或者以上的子站点 2.站点间在功能、风格、业务流程等有一定的差异化 3.站点拥有各自的业务逻辑
-
业务基站可共享哪些资源
一般来说业务基站可以共享包括pages,components,stores,assets等项目中所有资源给子站引用,所以在构建业务基站时,共享资源的复用性,可扩展性以及独立性都需要考虑在内
提供稳定的共享资源
每个基站都是独立部署的,都有自己的连续交付通道,该通道可以构建、通过测试并其一直部署到生产环境中,这样既保障了线上其他项目调用的稳定性,同时减少了资源部署的范围,从而降低了相关风险。同时如有需要我们可以引入版本机制,在基站不断更新迭代的同时,减少新迭代对旧项目的影响。
共享资源功能分工更明确
我们根据功能去拆分,把每个模块都归纳到对应的基站管理,既避免了项目间杂乱无章的资源共享,也避免了资源无处可查的尴尬局面。基站的构建,让我们的项目得到了积累于沉淀,使整个团队的协作更加高效以及规范化,开发效率得到很大的提升
大部分共享资源抽离,项目更简介纯粹
大部分共享的资源都在基站管理,项目只需在需要时调用,既大量减少了项目的代码使项目更加关注于业务的逻辑,同时也大大减少了构建打包的耗时。下图可以看出,共享资源的抽离后,原项目的构建得到质的飞跃:
项目可快速复制、移植、发布
业务基站的构建使得业务功能模块拆分更加清晰,通过新站点调用装载,能快速的构建出一个全新独立的子站项目。