sqle
sqle copied to clipboard
重构规则列表
优化建议
当前问题
当前规则列表中的规则校验逻辑都是独立函数, 这种做法已经无法适应新的需求 新需求指部分场景可能会有特定的审核要求, 此时需要审核函数根据特定要求调整自身逻辑
建议优化方案
将校验逻辑的入参调整为一个结构化的数据, 便于以后增加参数
调整方案
相关定义
RuleHandler调整
旧定义
func(*session.Context, driver.Rule, *driver.AuditResult, ast.Node) error
新定义
func(input *RuleHandlerInput)error
RuleHandlerInput定义
如果需要审核规则在满足特定要求的情况下审核, 则可以将要求加入AdditionalRequire中
type RuleHandlerInput struct {
context *session.Context
rule driver.Rule
result *driver.AuditResult
node ast.Node
require AdditionalRequire
}
type AdditionalRequire struct {}
规则调整
- 规则函数定义调整
- 整理审核函数逻辑, 将不同SQL类型的处理逻辑拆开, 为以后根据条件判断哪些部分执行哪些不执行做准备