
获得徽章 0
- 学习的几个层次:
1.学习:复制的过程
2.学到:重复的过程
3.学透:透过现象看本质,知其然,还要知其所以然的过程
4.学通:见招拆招,触类旁通的过程
5.学成:知行合一的过程展开评论6 - ## 如何阅读业务系统代码??
基本看法: 业务系统 = 业务逻辑 + 增删改查
阅读业务系统代码的一些心得:
- 先了解功能、核心流程, 看文档、视频、问人
- 使用功能的过程中猜测可能的表结构
- 开启sql打印, 或用JProfiler等工具跟踪sql
- 给调用链最内层的方法打断点, 从堆栈里看调用过程, 有助于了解核心类、对象;
- 最内层的方法, 可能是直接操作数据库的方法, 比如mapper、repository
各位大佬有没有什么好方法分享一下?展开510 - 各位码友们,我想问一下困扰我很久的问题,就是那些大厂的权限控制(接口权限、资源权限)是怎么实现的?因为我看网上基本都是RBAC这一套,但是都没有细说里面的实现;我不清楚他们校验权限这一块是每次都查数据库还是先缓存到redis里,还有比如某个角色被修改(比如了某个接口的权限);我是这么做的:首先redis里缓存整个角色对应的权限列表(角色能调用的接口列表),使用redis存储登录的用户信息和绑定的角色列表(拥有的角色id);用户调用接口时携带的token先到redis里查一下有没有这个token,通过token拿到用户拥有的角色id列表,再去遍历这个用户的角色列表看当前调用的接口地址有没有包含,如果当前用户所有角色遍历完没有这个接口权限,就表示没有权限反之表示有权限;这一整个步骤都是用lua脚本在redis里执行的,虽然感觉比直接查数据库快,但整个校验都放在redis里也感觉不太妥,所以想问一下大家都是怎么做的,感觉网上很少又说具体实现。展开116