本文作者: 姚泽源
栏目简介
介绍本周值得分享的技术内容, 周四发布
权限系统
几乎所有开发人员都头疼过权限系统的设计, 但实际上, 学术界在1996年时, 就已经有了比较成熟的权限系统模型: RBAC96
RBAC是基于角色的权限访问控制(Role-Based Access Control)的缩写, 它的基本思路是将权限设计分为用户/角色/权限三个部分, 用户拥有角色, 角色拥有权限. 三者联合, 构成权限系统. 如下图所示

当然, 这是基础模型, 复杂情况下还会有 角色间的权限继承关系(RBAC1), 角色互斥关系(RBAC2), 以及RBAC3(AC1 + AC2)等情况, 但大致思路就是这样.
js中的汉语常量名
复杂业务逻辑中, 如何给大量相似的常量命名变成了一个难题. 传统会用英文/拼音的方式命名, 但如果所有常量都非常接近的话, 区分不同常量就很困难了:
// 安能辩我是雌雄
const CONST_GE_SHUI_CUSTOMER_PAY = 'ge_shui_customer_pay'; // 个税买方支付部分
const CONST_GE_SHUI_SELLER_PAY = 'ge_shui_seller_pay'; // 个税卖方支付部分
const CONST_GE_SHUI_TOTAL_PAY = 'ge_shui_total_pay'; // 个税支付总额
const CONST_ZENG_ZHI_SHUI_CUSTOMER_PAY = 'zeng_zhi_shui_customer_pay'; // 增值税买方支付部分
const CONST_ZENG_ZHI_SHUI_SELLER_PAY = 'zeng_zhi_shui_seller_pay'; // 增值税卖方支付部分
const CONST_ZENG_ZHI_SHUI_TOTAL_PAY = 'zeng_zhi_shui_total_pay'; // 增值税支付总额
const CONST_QI_SHUI_CUSTOMER_PAY = 'qi_shui_customer_pay'; // 契税买方支付部分
const CONST_QI_SHUI_SELLER_PAY = 'qi_shui_seller_pay'; // 契税卖方支付部分
const CONST_QI_SHUI_TOTAL_PAY = 'qi_shui_total_pay'; // 契税支付总额
复制代码
但是, 由于js变量名支持unicode, 所以, 我们完全可以使用中文作为变量名
// 感觉好多了
const CONST_个税_买方支付部分 = 'ge_shui_customer_pay'; // 个税买方支付部分
const CONST_个税_卖方支付部分 = 'ge_shui_seller_pay'; // 个税卖方支付部分
const CONST_个税_支付总额 = 'ge_shui_total_pay'; // 个税支付总额
const CONST_增值税_买方支付部分 = 'zeng_zhi_shui_customer_pay'; // 增值税买方支付部分
const CONST_增值税_卖方支付部分 = 'zeng_zhi_shui_seller_pay'; // 增值税卖方支付部分
const CONST_增值税_支付总额 = 'zeng_zhi_shui_total_pay'; // 增值税支付总额
const CONST_契税_买方支付部分 = 'qi_shui_customer_pay'; // 契税买方支付部分
const CONST_契税_卖方支付部分 = 'qi_shui_seller_pay'; // 契税卖方支付部分
const CONST_契税_支付总额 = 'qi_shui_total_pay'; // 契税支付总额
复制代码
事实上, Swift已经在这么玩了

© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)