在应用领域,随着分布式网格和微服务架构的普及,针对单项资源的垂直化管控逐渐成为主流。本质上,我们可以把这种思路理解为分治策略从业务到技术的深层次下沉。
在后端,软件服务一般体现为基于Restful等资源管理框架的API,我们可以将之理解为以资源为中心的蒲公英结构:以资源为中心,将资源的所有特性通过API表达出来。
现代化前端框架因为采用 MVVM 的方案,数据层(M)和 视图层(V)相互连接,数据变更时可实现交互数据一致性。目前前端框架主流是三驾马车,其区别如下:
以VUE为例,简单介绍一下前端资源管理模式在MVVM中的实现思路:首先,构建资源池。资源池是这么一个概念,是同类资源的一个池子或仓库,可以集中式的管理资源。
基于资源池,就有以下的管理视角:
CRUDA
老鸟们都知道,这些操作都跑来不了,增删改查审,这是一个资源池的垂直管理维度,解决的是资源池中资源有无和正确性的问题。为了单独拎出这个维度,在抽象层上,将临时编辑数据、CRUDA事件等打包成功能面进行管理,像VUE,就可以利用Mixins这样的混入机制。
编目
编目工作在资源池的上级,提供对资源进行分类和导航的机制,在实际业务上,编目根据切入维度不同,可能有千万种划分,但从模型上看,它们都是平行排列的树状结构。这些分类树,后期会提供筛选、导航、分类、统计等衍生功能。编目也是垂直维度的功能,解决资源的分类问题。
在实现上,可借助EAV模型建立动态的编目机制,这样更加贴近业务实际,因为我们无法预测,资源的观察维度到底有哪些。
安全
安全是个横向维度,一般安全管理模型是最复杂的,因为我们要实现到:某某人可以访问(CRUDA)某某系统在某个时间段内的某部分数据。这个可以做一个单独的专题来讨论,这里我们还是关注RBAC模型,即通过角色归拢授权和各类角色,再将角色分配到人。
事件
建立资源的事件分发机制,可以和其它模块进行零耦合的协同,通过应用观察者模式建立订阅机制,资源A可以轻松的分发数据到订阅了其事件的资源B上去。在VUE中,可以借助状态管理器(statex)或者事件总线机制实现。
基于上述,我们可以基于微前端的设计模式,将单项资源的前端服务组件化,从而和后端微服务进行资源粒度上的适配,提升前端的适应能力。
本文暂时没有评论,来添加一个吧(●'◡'●)