bilibili / gengine

Other
1.95k stars 272 forks source link

能不能分享一下实际项目使用了gengine,参考一下 #51

Open flytoofly opened 2 years ago

changecj commented 2 years ago

同求,不知道咋用。是管理后台上自定义规则字符串,然后就直接修改程序逻辑?

yuan-ze commented 1 year ago

同求

ijoywan commented 1 year ago

@yuan-ze @changecj 打个比方,用户有以下字段 level 会员登记,created_at 注册时间, invite_count 邀请人数。 现在,要针对一个月内注册的用户发放 20 元代金券。 这时候,一般都是写死规则的。

但是,隔天,又说要针对 6个月内注册的用户,邀请人数大于 5 的人发放 10 元代金券,那么,有可能你还是会硬编码,但有可能就用上这个

然后,过了一天,说要针对 level2 的人发放代金券,那么,这时候,还硬编码么? 肯定是想找一个规则引擎来做这一件事。

所以,我们可以提前准备好2个函数,一个结构体,函数就是发放多少代金券,结构体就是上面这个 User,然后用规则引擎来做判断条件,判断每一个用户是否可以发放代金券。

那么下次再发放的时候,就不要再改代码,只要新增规则引擎即可。

changecj commented 1 year ago

其实就是把“已知条件” 和 “判断逻辑”拆开,只要判断逻辑可以优雅地新增,就可以优雅地解决这个频繁变动的需求。