规则引擎精准解耦多变需求,让需求变更降低80%(一)

经常有技术团队的小伙伴抱怨最烦的就是产品经理发起需求变更,才做了三周,改了八回需求......

其实这个故事,每天都在开发团队中上演,作为 IT的 leader 来透视这个问题,要辩证的看待,其实80% 的可能性都是如下2个方面之一,那么搞定下面两个方面就搞定80%的需求变更,这个都是妥妥的开发成本或者项目利润。

1、人的问题:需求人员说不清楚、产品经理无法抽象,简单成为二传手,到技术人员手中的需求肯定会持续更改,那么这总结为人的问题,如果是需求方的人说不清楚,那么就需要升级,找到能够说清楚,能够排版的人,否则无法解决;如果是产品经理的问题,每天摸鱼划水,那么做“传声筒”,没有对需求进行理性的分析抽象,那么赶紧裁掉 ,及时止损才是正道。

2、业务本身的问题:比如风控规则,所谓道高一尺魔高一丈,每天都在较劲寻找对方的突破点;又例如员工考核 ,每个岗位可能都是不一样的考核方式,而且很可能领导一句话就增加一种考核模式,那么这种常常变化的业务,就需要采用规则引擎去做抽象判断。

那么对于上述的第一条我就不过多做赘述,针对第二条,我们自己实现的方式给大家讲讲,算是抛砖引玉。

我们应该把经常变化的场景转化为产品技术考虑的业务因子、判断条件、决策模型, 举例说明下, 例如在做“行政机构合规性执法的判断”的场景中,会把执法人员执法结果纳入到决策判断模型中, 这个过程是不断持续扩展的,如下图所示:

那么这种判断,就不适合写 if... else... then.... 多层的判断嵌套 ,因为业务需求可能会经常发生变化,那么就应该把业务和判断解耦。

那么这里如何解耦这个过程,我们以软开企服的 jvs-rules的规则引擎举例说明,大致分为四个大的步骤:

一、判断的数据来源

在我们的业务场景中,判断数据的来源大致有几个方面: a.入参(通过业务系统调用的时候传入进去);b.本地的数据库(内网自有数据);c.三方API数据(外部系统数据)

  • 入参可以通过jvs-rules 的入参设置去解决,一旦配置入参,在自动生成API时,会自动添加这项需要传入的数据;

设置入参后,系统会自动更新API调用的 接口要求:

  • 本地数据库数据接入,在业务执行中,除了出参以外,还常常用到了 本地的数据的数据,那么就可以在数据源中配置对应数据库的接入,解决调用本地数据来源的问题;

动态直连访问业务数据库:

这里数据库的接入提供多种数据库的方式:

  • 三方外部系统的接入,可以通过API 、甚至离线文件等方式接入

API接入界面配置化:

二、判断因子的挖掘加工

在解决了数据接入的问题,就需要考虑数据与真实的业务判断有差异的情况下,如何搞定数据挖掘的问题,例如上文提到的行政执法的结果是一个文本,需要解析出来里边的执法金额,用于决策判断,那么如何实现呢?

系统提供了函数式 加工数据的方式(类excel 数据加工),可以提供系统自带的很多函数 对各种数据进行加工(入参、本地数据库、三方api 获取),得到我们想要的业务结果,例如上图,就是通过入参执法的结果,其中包括了大写的执法金额,需要把这些数据解析出来,转换成小写,得到最后可以判断的 “处罚金额”的变量。

这种数据加工包括“函数式”加工取数、“SQL脚本”取数据、“任务式”加工取数,如下图所示:

三、业务规则的拼装与仿真(详见后续章节)

四、规则的部署与业务调用(详见后续章节)

总结

JVS-Rules,是对用户比较友好的规则引擎解决方案,可以有效降低配置门槛和开发工作量,JVS提供基础性开源方案,支持商用与源码开放。

​https://gitee.com/software-minister​

​https://gitee.com/software-minister/jvs-rules​

全部评论
在线demo:http://rules.bctools.cn gitee地址:​ https://gitee.com/software-minister/jvs-rules​​ ​gitee开源仓库: https://gitee.com/software-minister​​
点赞 回复 分享
发布于 2024-06-04 14:05 重庆

相关推荐

机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-21 11:33
昨天是学校最后一场招聘会,鼠鼠去参加了,全场只有一个招聘java的岗位,上来先做一份笔试题,做完后他拿张纸对答案,然后开始问简历上的问题,深圳小厂,6-8k(题目如下),后面还有两轮面试。然后我就在招聘现场逛呀逛,看到有公司招聘电商运营,给的比上年的小厂还多,鼠鼠就去了解了下,然后hr跟鼠鼠要了份简历,虽然我的简历上面全是求职Java开发相关的内容,但是hr还是鼓励我说没关系,她帮我把简历给老板看看,下周一会给我通知。招聘会结束后鼠鼠想了一段时间,也和朋友聊了聊,发现我可能是不太适合这个方向,然后就跟爸爸说回家了给我发条微信,我有些话想跟他说说。晚上爸爸到家了,跟我发了条微信,我立马跑出图书馆跟他打起了电话,这个通话长达一个小时,主要是跟爸爸坦白说我不想找这行了,是你的儿子太没用了,想试试其他行业。然后爸爸也跟我说了很多,说他从来没有希望我毕业后就赚大钱的想法,找不到就回家去,回家了再慢慢找,实在找不到就跟他干(帮别人装修房子,个体户),他也知道工作不好找,让我不要那么焦虑,然后就是聊一些家常琐事。对于后面的求职者呢我有点建议想提一下,就是如果招实习的时间或者秋招开始,而你的简历又很差的情况下,不要说等做好项目填充完简历之后再投,那样就太晚了,建议先把熟悉的项目写上简历,然后边投边面边完善,求职是一个人进步的过程,本来就比别人慢,等到一切都准备好后再投岂不是黄花菜都凉了。时间够的话还是建议敲一遍代码,因为那样能让你加深一下对项目的理解,上面那些说法只是针对时间不够的情况。当然,这些建议可能没啥用,因为我只是一个loser,这些全是建立在我理想的情况下,有没有用还需其他人现身说法。上篇帖子没想到学校被人认了出来,为了不丢脸只能匿名处理了。
KPLACE:找研发类或技术类,主要还是要1.多投 2.多做准备,很多方面都要做准备 3.要有心理准备,投累了就休息一两天,再继续,要相信自己能找到
投递58到家等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 12:26
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务