高质量编程与性能调优实战预习 | 青训营笔记

131 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天

什么是规则引擎

定义

规则引擎即是:可降低复杂业务逻辑组件复杂性、降低应用程序的维护和可扩展性成本的组件

为什么要使用

业务规则经常变化,系统需依据业务的变化,实现快速、低成本的迭代更新。

主流规则引擎

序号名称开源情况流行度运行模式备注
1llog商业非常出名/价格昂贵,不推荐
2drools开源github 3.2k嵌入式、分离式支持可视化等整个配套,是一个完整的BMRS系统(业务规则管理系统),同时其生态很活跃。
3esayRule开源github 2.6k嵌入式支持ymljava注解方式配置规则,但是后两者无法实现动态加载。
4qlexpress开源github 2.3k嵌入式支持java方式书写规则,且支持动态加载,但加载比较耗时。后续还有Aviator、Vincio均是类似性质,故不予赘述。
5uRule商业github 1.1k嵌入式、分离式除了部分开源外,其他方面基本和drools差不多,也是一套完整的 BMRS系统,且是国内开发,学习和使用门槛更低。
6logstash开源出名分离式它不算规则引擎,但也放这儿了。想到它也是做数据处理,且支持正则模式匹配等简单数据处理。也许某些公司某些场景,就刚刚就能用上。
7jess商业文档巨少/不推荐
8jruleengine开源国内几乎没咋用嵌入式不推荐
9jlisa商业同上/不推荐

什么是编译

编译就是将高级语言翻译成汇编语言或者机器语言的过程,通俗的说就是把高级语言程序员说的话翻译成机器能听懂的话.

解释型语言和编译型语言

  1. 编译型语言要求使用编译器一次性将所有源代码编译为一个可执行程序,一次编译可重复执行。代表语言有C、C++、Golang
  2. 解释型语言是使用解释器一边执行一边转换,用到些源代码就转换哪些,不会生成可执行程序。代表语言有JavaScript、Python、PHP、Shell等。