Java源码规则引擎:jvs-rules 之自定义函数处理

createh54个月前 (01-21)技术教程45

JVS规则引擎是一款技术源码可开放的JAVA规则引擎,采用 spring cloud+ VUE 的技术架构进行构建,其中对数据的灵活加工处理采用的是函数式编程的思路(类excel函数配置),是其亮点功能。

它允许开发人员定义和管理应用程序的规则,并在应用程序中执行这些规则。在规则引擎中,从数据加工成变量并使用函数式编程的方式有着很大的价值和优势。

  1. 数据加工成变量: 规则引擎可以从不同的数据源中提取和加工数据,将其转化为可用的变量。这些变量可以是数字、字符串、日期、布尔值等不同类型的数据。通过数据加工,规则引擎能够对数据进行处理、转换和整合,使其更适合于后续的规则判断和操作。将数据加工成变量可以为规则引擎提供更丰富的数据来源,并为后续的规则执行提供必要的数据基础。


  1. 函数式编程: 函数式编程是一种编程范式,它将计算视为函数的求值过程,强调使用纯函数进行编程。在规则引擎中,使用函数式编程可以带来以下价值:
  • 可组合性:函数式编程强调函数的组合和复用,通过将函数进行组合可以构建出更复杂的逻辑。在规则引擎中,使用函数式编程可以将规则进行模块化,使得规则可以被灵活地组合和重用,减少重复性的代码编写。
  • 可扩展性:函数式编程鼓励将程序划分为独立的函数,每个函数只关注特定的功能。这种模块化的设计使得代码更容易扩展和维护。在规则引擎中,使用函数式编程可以将规则划分为小块的函数,每个函数负责处理特定的规则逻辑,便于新增规则和修改现有规则。
  • 可测试性:函数式编程强调函数的纯度,即相同的输入会产生相同的输出,不依赖于外部状态。这种纯函数更容易进行单元测试,通过给定输入并验证输出,可以快速检测函数的正确性。在规则引擎中,使用函数式编程可以使规则函数更易于测试和调试,提高代码质量和可靠性。

总的来说,将数据加工成变量并使用函数式编程的方式在规则引擎中具有重要的价值。它能够提供丰富的数据基础,使规则引擎能够更好地进行规则判断和操作。同时,函数式编程的特性可以带来可组合性、可扩展性、可测试性和可并行性,使规则引擎的开发更加灵活、可维护和高效。JVS-rules规则引擎100%技术源码可开放,在功能强大的同时具备极其友好的配置界面,值得体验rules.bctools.cn,也欢迎一起交流。

相关文章

Kafka 的生成者、消费者、broker 的基本概念

kafka是一款基于发布与订阅的消息系统。它一般被称为“分布式提交日志”或者“分布式流平台”。文件系统或者数据库提交日志用来提供所有事物的持久化记录,通过重建这些日志可以重建系统的状态。同样地,kaf...

原来那些:《java基础教程》不是最基础,而是这套解释概念的教程

最近和一个粉丝聊天,才发现我们给资源的时候没有顾忌到零基础的人群对于计算机认识这一块。发现在学习过程中只掌握方法,没有掌握方法的根源到底是什么,抱歉,是我们的错。一个粉丝对我说,学习后才发现,这些很基...

一起来了解一下,什么是java。(啥是java)

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表...

阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义

常用文件夹分层:pojo? vo (与前端交互的所有对象,包括接参和返回)? query (查询的筛选条件,前端传参和后端内部传参通用)? entity (数据库表基础对象)? dto(后端内部传输用...

终于拿到阿里架构师分享的557页深入理解Java模块系统文档

前言Java 9通过模块系统将零散的拼图拼凑到了一起,模块系统成了Java平台的核心而不是扩展功能。Java的模块系统必须有所妥协。它不仅要保持对大量现有代码的支持,使其不至于破坏现有的生态系统,还...