权限系统 RGCA 四步架构法

点击上方蓝字
关注我们
(本文阅读时间:7分钟)
本文介绍了RGCA四步架构法的思路 , 通过RGCA四步架构法设计一个无代码埋点通用权限管理系统 。
微软MVP实验室研究员
权限系统 RGCA 四步架构法
文章图片
郑子铭
微软最有价值专家(MVP) , DeveloperTechnologies方向
公众号:DotNetNB , CloudNativeNB
广州.NET社区成员 , 95后开发者 , 热衷于.NET技术学习分享
目录
RGCA四步架构法
Requirement:从利益相关者获取需求
Goal:将需求转化为目标(功能意图)
Concept:将目标扩展为完整概念
Architecture:将概念扩展为架构
从利益相关者获取需求
▌受益原则
好的架构必须使人受益 , 要想把架构做好 , 就要专注于功能的涌现 , 使得系统把它的主要功能通过跨越系统边界的接口对外展示出来
▌痛点
对于企业内部的管理系统而言基本上都会有一个权限管理系统 , 产品经理在进行产品设计的时候需要先确定每一个菜单 , 每一个按钮的key是什么 , 再将key与权限进行匹配、绑定
但是产品经理无法确定未来所有需要权限管理的地方 , 所以需要开发人员提前为所有地方设置key
由于需要设置的key有很多 , 所以可能命名不规范 , 也有可能会有缺漏 , 未来涉及到遗漏的地方就需要开发人员重新编码、发布才能满足需求 , 这是开发企业内部权限管理功能的痛点
▌利益相关者
甲方:开发人员 , 架构师 , 投资人
客户方:开发人员 , 产品经理 , 系统运营人员 , 老板受益人需求开发者1、集成简单 , 少写代码;
2、功能灵活 , 可以扩展;
3、不要绑死 , 可以插拔;
4、低代码侵入性 , 不影响业务代码产品经理1、随时可以增加对系统里面功能和数据的权限控制系统管理员1、希望能灵活对系统的权限进行配置 , 适合角色与员工结构 , 依照通用行业标准进行配置开发者所属公司1、低成本(划算);
2、不要绑死投资人1、通过该项目的完整演示RGCA的架构设计过程;
2、将此系统开源回馈到社区 , 以获得更多开发者的支持;
3、进一步搜集开发者和企业用户的需求以进行下一步的开发
▌需求分类、排序、特征
权限系统 RGCA 四步架构法
文章图片
将需求转化为目标(功能意图)
从系统的顶层角度:定义系统的形式和功能
确定功能意图(功能意图是由主要受益者 , 主要需求而推导出来的)
形式:通用的权限管理系统
to..by..using
为了...通过...使用
功能:无需代码埋点 , 通过UI配置改变资源(页面、按钮、数据、API)的可访问性 , 达到权限控制的目的
过程+操作<=工具受益者系统管理员&产品经理需求?对系统中受保护的资源进行权限保护与解决方案无关的操作对象受保护的资源与利益相关的属性可访问性 , 完整性操作数的其他属性可配置性 , 可访问性与解决方案无关的过程拦截/保护无关过程的属性准确性
权限系统 RGCA 四步架构法
文章图片
将目标扩展为完整概念
在目标阶段提出了与解决方案无关的过程:拦截 , 一个模糊抽象的过程 , 没有说明由谁来拦截 , 以什么方式来拦截
与解决方案无关的操作对象:受保护的资源 , 一个抽象的对象 , 由需求导出了对象的分类 , 但是仍然没有特别具体 , 没有具体的场景
到了概念阶段需要提出具体解决方案过程:从解决方案不相关 , 到与解决方案相关