系统设计 | 处理业务公式
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
TechLead 少个分号
扫码关注公众号
扫码阅读
手机扫码阅读
文章摘要
本文探讨了在复杂的财务结算模块中,如何通过使用公式和规则引擎来处理业务规则。讨论了表达式类型、技术选型、模型设计,以及在必要时实现自己的表达式求值库的方法。
表达式类型
文章首先对表达式类型进行分类,包括布尔表达式、数学表达式、自定义函数的计算和条件表达式。指出这些类型在执行时如果混合,就与图灵完备的通用计算机语言相似,但后者具有更好的性能和功能。
技术选型
作者分享了对几种表达式引擎的调研经验。Spring EL适合技术规则配置,MVEL强大但难找到合适场景,JDK JS引擎适合将JS作为DSL使用但性能差,而QLExpress适合业务规则和表达式配置。作者建议根据业务需求选择合适的引擎。
模型设计
模型设计通常包括数学计算公式、条件匹配规则、公式变量和公式修改历史四个部分。在必要时,还可增加公式执行的事务或执行记录。
实现自己的表达式求值库
在现有框架和工具无法满足特殊场景需求时,可以考虑自行实现表达式求值库。文章讨论了编译原理相关知识,包括逆波兰表达式和栈的概念,并介绍了将中缀表达式转换为后缀表达式的过程,以简化表达式求值的复杂性。
结论
文章总结指出,处理财务结算模块的计算规则需求时,应根据具体业务场景选择合适的技术解决方案。无论是选择现成的表达式引擎还是开发定制的求值库,都要确保能够满足业务的计算透明化、规则版本化和计算条件的准入要求。
TechLead 少个分号
TechLead 少个分号
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
TechLead 少个分号的其他文章
技术管理 | 没看清问题本质之前,努力几乎无用
如果能洞察一个企业中人与人之间的关系,以及企业战略方向,那么就能在管理和咨询工作中游刃有余。如果没能洞察到问题的本质,那么结果就是到处碰壁(把自己的工作做得再好都没用)。
送你一本 Java 研发自测的开源书
Java 研发自测的开源书发布
企业架构建模的挑战和机遇
企业架构关注业务的结构和行为,尤其是创建和使用业务数据的业务角色和流程。它已被定义为 “用于进行企业分析、设计、规划的体系方法,具有定义明确、长期主义、综合应用的特点,用于制定和执行企业战略。
技术管理 | 从道德框架转变为利益框架
当你学会用“利益”而不是“好坏”去看人、看事,你会发现这个世界突然不那么让你愤怒了,甚至更容易谈合作、更容易做选择。与其生气别人“不讲良心”,不如问自己:“我能不能成为那个让别人必须考虑的人?”
技术管理 | 人的特点和心理学效应
其实很多敏捷实践有一些心理学上的小心思。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线