规则引擎,实现业务低代码开发的重要工具

news2024/9/24 5:29:18

规则引擎,是将业务执行抽象化的配置,通过其定义的数据结构、算法和流程来实现应用程序功能的普适化。 规则引擎可以帮助企业提高业务开发效率,提高运营的灵活性,降低运营成本与开发成本,让系统更加智能化灵活化。这里以jvs-rules截图为例。

一、什么是规则引擎

定义:是指对业务系统的规则进行抽象,使之成为通用模型。

作用:帮助应用程序开发人员构建一套标准化的业务规则和算法。

规则引擎可以简化业务架构,让开发人员更容易理解业务逻辑,并在一个开发环境中提供一致易用的工具。

主要作用有:降低开发人员使用复杂代码的难度;降低数据录入工作量;优化功能代码实现,提高开发效率;灵活扩展应用程序功能,快速上线新功能;增加应用程序的灵活性。

二、规则引擎的作用与价值

• 分离商业决策者的商业决策逻辑和应用开发者的技术决策,企业可以使用灵活的规则引擎来构建新的应用程序,满足企业业务创新需求;

• 能有效的提高实现复杂逻辑的代码的可维护性,符合组织对敏捷或迭代开发过程的使用;;

• 通过建立流程规范和规则模型,构建业务智能执行框架,从而降低开发成本、提高应用程序的灵活性和可扩展性

• 规则引擎可以帮助企业提高业务开发效率,降低业务代码的量,减少在开发期间或部署后修复代码缺陷;

• 应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内;

• 可以帮助企业在业务创新时,提供更多灵活性以及更高的自动化程度,从而提升运营效率和市场竞争力,降低风险。

三、规则引擎的基础要求

规则引擎通常是以业务逻辑为导向,来支持业务流程的开发,帮助业务开发人员完成一些功能,企业级管理者对企业IT系统的开发有着如下的要求:

1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。

2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新,拖拽化配置,实施生效是规则引擎成为业务灵活性的基础要求

3.为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与,变量加工的在线化配置,大大降低了数据加工处理的功能:

四、一个案例,看一下常见的几种不同应用场景

产品业务规则引擎,可将多个复杂的功能通过一个简单的规则逻辑组合起来,从而简化了复杂的业务流程。

产品技术研发规则引擎,可帮助技术人员快速高效地构建复杂的技术架构,降低运维成本,业务规则引擎可快速地将各个功能模块组合成一个完整实用的业务流程或产品方案。。

管理决策和运营人员制定规则引擎,将多种类型的业务规则结合起来,从而达到降低运营成本与开发成本的目的。

我们以电商的订单场景举例:

根据系统的功能需求,将业务逻辑进行拆分,每个流程都需要一套单独的规则引擎。

在不同的场景下,规则引擎需要满足不同用户的实际需求,如系统中用户下单后支付成功是指商品价格和支付金额达到最低标准,还是需要完成订单结算。根据场景不同,的场景下往往会有不同的业务动作。

我们再看看金融场景,用户提交进件申请,需要前置过滤黑名单、需要过反欺诈的评估、还需要通过风控的一些基础规则,如果拿if与else写所有的业务逻辑,一旦风控人员需要调整需求,那么开发人员就痛苦了。

五、推荐几个开源的规则引擎

我个人理解的规则引擎就像一把钥匙,让应用程序可以在业务需求出现时按需生成业务流程,在业务流程发生变更时通过规则引擎将业务变更的相关信息和原因进行匹配即可满足当前需求。目前行业内开源的规则引擎也就那么几个, drools、easy-rules、urules、jvs-rules

其中,jvs-rules的界面化的交互配置比其他几个产品要有优势,而且对懂业务的人要友好很多。

开源地址:https://gitee.com/software-minister

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/187895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Rust】5. 所有权

5. 所有权 5.1 什么是所有权 5.1.1 栈(Stack)与堆(Heap) 5.1.2 所有权规则 5.1.3 变量作用域 5.1.4 String 类型 String 类型可进行修改,而字符串字面值是不可以的!(区别在于二者对内存的处理…

OAuth2

目录一、什么是OAuth2.0二、OAuth2中的角色三、认证流程四、生活中的Oauth2思维5. 令牌的特点6.OAuth2授权方式6.1 授权码6.2 隐藏方式6.3 密码方式6.4 凭证方式一、什么是OAuth2.0 OAuth2.0是目前使用非常广泛的授权机制,用于授权第三方应用获取用户的数据。 举例…

PythonWeb Django框架学习笔记

文章目录Django一、初步了解Django1.1 创建项目1.2 文件介绍1.3 APP的创建和说明添加新的app注册app创建页面1.4 templates模板templates语法单一变量列表循环【列表】字典循环【字典】列表套字典条件判断templates小结1.5 请求和响应案例:用户管理二、数据库操作2.…

前言技术之mybatis-plus 01

目录 1.什么是mybatis-plus 2.初体验 3.日志 4.主键生成策略 5.更新 6.自动填充 1.什么是mybatis-plus 升级版的mybatis,目的是让mybatis更易于使用, 用官方的话说“为简化而生” 官网: MyBatis-Plus 2.初体验 1.准备数据库脚本 数据…

再获殊荣!天云数据入选第一批北京市级企业技术中心,Hubble数据库提供新一代信息技术科技服务

为助力北京国际科技创新中心建设,贯彻落实北京市“十四五”时期高精尖产业发展规划,引导和支持企业加强创新能力,培育和引导企业技术中心建设,北京市经济和信息化局组织开展了2022年度第一批北京市市级企业技术中心的创建工作&…

【Python学习笔记】5. Python3 基本数据类型(上)——数值型、字符串型

前言 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 Python3 基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变…

tomcat配置多个host,并且避免重复加载

目录 1.实验描述 2.实验环境 2.实验过程 2.1 创建order和user项目 2.2 打包项目 2.3 修改tomcat的server.xml的配置 2.4 启动tomcat 2.5 配置本地host 2.6 验证 1.实验描述 目前有两个域名,分别是: order.abc.com user.abc.com 两个项目&…

微信小程序学习第1天:微信小程序开发入门介绍

前言:微信小程序开发模式 1、申请小程序开发账号 2、安装小程序开发者工具 3、创建和配置小程序项目 一、申请小程序开发账号 1、体验小程序 2、注册小程序开发账号 使用浏览器打开https://mp.weixin.qq.com网址,按照提示注册 注册承购后&#xff0c…

微服务 初始 分布式搜索引擎 Elastic Search

文章目录⛄引言一、什么是Elastic Search?二、Elastic Search 倒排索引⛅正向索引⚡倒排索引⛄正向和倒排三、ES的一些概念⛅文档和字段⚡索引和映射四、MySQL 与 Elasticsearch⛵小结⛄引言 本文参考黑马 分布式Elastic search Elasticsearch是一款非常强大的开源…

OBB的计算python实现

OBB的计算python实现1. 实现步骤步骤① 分解点集的xyz分量步骤② 对x、y、z这三个随机变量(一维数组)求协方差矩阵步骤③ 对步骤②中的协方差矩阵求解特征值与特征向量,特征向量构造列向量矩阵M步骤④ 将点集的几何中心平移至坐标系原点&…

最全java面试题及答案(208道)

本文分为十九个模块,分别是:「Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM」 ,如下图所…

Discord怎么抢白名单?Discord多账号防关联可以提高白名单成功率

Discord作为一个社交媒体,在加密货币领域扮演着重要的角色,它强大而便捷。更重要的是,如果你是一个投资者,Discord无疑是你了解项目动态,深入社区沟通交流的重要工具。 相信很多玩NFT和Web3的朋友都不会对discord 陌生…

分位数的理解与查询

目录 分位数的定义与理解: pyspark 中分位数查询 方式1 : 某列分位数查询: 采用dataframe的approxQuantile属性,返回一个list 例子: 方式2 : 转换为toPandas,利用pandas.dataframe利的…

全志T113-i+玄铁HiFi4开发板硬件说明书(2)

前 言 本文档主要介绍开发板硬件接口资源以及设计注意事项等内容,测试板卡为全志T113-i+玄铁HiFi4开发板,由于篇幅问题,本篇文章共分为上下两集,点击账户可查看更多内容详情,开发问题欢迎留言,感谢关注。 T113-i处理器的IO电平标准一般为1.8V和3.3V,上拉电源一般不超过…

【C++入门】命名空间的定义与使用

目  录1 命名空间1.1 命名空间定义1.2 命名空间使用1 命名空间 在C/C中,变量、函数和类都是大量存在的,这些变量、函数、类的名称将都存在于全局作用域中,可能会导致很多冲突。 使用命名空间的目的是对标识符的名称进行本地化,以…

经典动态规划OJ题目:接雨水or接青豆(多种方法,附详详细思维过程、解析及源码)

作者:非妃是公主 专栏:《算法》《刷题笔记》 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 《算法》专栏系列文章 算法设计与分析复习01:主方法求递归算法时间复杂度 算法设计与分析…

MySQL批量插入4种方案(对比速度起飞)

一、前言二、准备工作1、Maven项目中pom.xml文件引入的相关依赖如下2、application.yml配置属性文件内容(重点:开启批处理模式)3、Entity实体类(测试)4、数据库student表结构(注意:无索引&#…

4.2 避免缩进错误

4.1.3 在for循环结束后执行一些操作for循环结束后再怎么做呢?通常,你需要提供总结性输出或接着执行程序必须完成的其他任务。在for循环后面,没有缩进的代码都只执行一次,而不会重复执行。下面来打印一条向全体魔术师致谢的消息,感谢他们的精…

爬虫实例(一) —— 5行 Python 代码爬取

大家好,我是 Enovo飞鱼,今天分享一个爬虫小案例,小白或者爬虫入门的小伙伴推荐阅读,加油💪。 目录 前言 基本环境配置 爬取目标网站 爬取内容 实现代码 后面我会继续更新爬虫实例,与大家共同学习&am…

ubuntu设置双网卡以及多网段

前提设备有两个网卡,分别作为内网和外网,比如两个网卡eth0和eth1,eth0作为外网,eth1作为内网,每个人的网卡名称可能不一样,网卡名称可以自行查看,使用ifconfig命令:ifconfig区分内网和外网的ip外网网卡&…