QL语言
express_wind
阿里巴巴java开发,规则引擎专家一枚,阿里巴巴开源产品的主力开发:
https://github.com/alibaba/qlExpress
展开
-
QLExpress脚本语言技术讲解(2) -----QL的基本执行过程
@org.junit.Test public void testDemo() throws Exception{ String express = "10 * 10 + 1 + 2 * 3 + 5 * 2"; ExpressRunner runner = new ExpressRunner(); Object r = runner.execute(express,null, null原创 2012-02-20 22:33:31 · 8604 阅读 · 0 评论 -
QLExpress脚本语言技术讲解(5)------对脚本语言的进一步优化,变成中文的脚本语言
上一篇讲到的是对运行环境的扩展: 这一篇主要的目标是把***************************************************执行的脚本:orderService.orderPay(id);***************************************************脚本换成 更容易明白的脚本:*********原创 2012-04-18 10:12:22 · 5897 阅读 · 1 评论 -
QLExpress脚本语言技术讲解(1)
QLExpress 实现了一个功能丰富、扩展性极高的编译执行器,实现了一个完整的词法分析,语法分析,语义分析,编译指令,指令执行的过程。在动态脚本满天飞的年代,有很多相对成熟的脚本解析工具,groovy,ruby,python... ...,淘宝开源工具 qlexpress作为一个淘宝开源的项目,也有它很多独特之处。QLExpress 是一个开放的脚本处理工具,它开放了很多api扩展定义接原创 2012-02-20 20:26:53 · 8367 阅读 · 0 评论 -
QLExpress脚本语言技术讲解(3) -----QL的性能描述
由上篇得知 整个qlexpress的执行过程:(1)单词分解(2)单词类型分析(3)语法分析(4)生成运行期指令集合(5)执行生成的指令集合。其中前4个过程涉及语法的匹配运算等非常耗时,要做到使qlExpress的性能最大化,你可以做以下两方面的优化:1、ExpressRunner设置成singleton(结合spring是非常容易做到的)原创 2012-02-20 22:52:49 · 5443 阅读 · 0 评论 -
QLExpress脚本语言技术讲解(6)-------QLExpress的缓存管理
(注:相关代码请参考 com.ql.util.express.test.ExpressCacheTest类,QLExpress源代码下载地址:http://code.taobao.org/p/QLExpress/src/ )1、QLExpress的缓存带来的好处:自带了一个本地缓存,用于缓存指令集,已减少编译阶段的时间消耗。 @Test public void tes原创 2012-05-28 22:55:02 · 4992 阅读 · 0 评论 -
QLExpress脚本语言技术讲解(4)------扩展QLExpress来管理spring的bean,写出简单的脚本语言框架
类似淘宝、腾讯之类的复杂业务系统一般都采用分布式的系统集群结构,每一个独立的子系统负责一块业务,这样做主要是为了使业务更加分离,专人负责专人的应用系统,同时降低系统的耦合性,增强系统的安全和稳定性。同时分布式的数据库和应用结构,使很多复杂的业务规则也变成了一个特定的系统调用。比如“支付订单(12781)”,需要调用一个交易中心的支付订单API。本章主要介绍的是如何通过扩展QlExpre原创 2012-04-17 12:00:04 · 12850 阅读 · 0 评论 -
qlExpress实践手册-spring的融合
中国绝大部分java应用系统都使用spring作为基础系统架构的一部分。 对于qlExpress脚本引擎来说,能否调用spring bean的方法?怎么调用?是一个非常常见的问题。 以下通过案例来说明。原创 2017-10-24 11:23:10 · 7949 阅读 · 1 评论 -
qlExpress实践手册-常用语法介绍
QlExpress脚本语言解析工具诞生于2010年,是阿里巴巴 玄难 根据当时 涉及资金结算 的业务需要开始编写。因为其良好的扩展性和过硬的稳定性,不断的被阿里的众多团队采用,也不断的增加功能、优化性能,到2011年升级为2.0版本。2012年发布到taocode作为阿里的开源产品之一,在开源社区受到很多好的意见和反馈。2013年升级到3.0版本,内部重构了语法定义和匹配的算法,代码原创 2017-10-26 11:23:49 · 24131 阅读 · 6 评论