Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture 自定义规则——如何在基于web的工具中实现?_Architecture - Fatal编程技术网

Architecture 自定义规则——如何在基于web的工具中实现?

Architecture 自定义规则——如何在基于web的工具中实现?,architecture,Architecture,因此,我正在构建一个基于web的替代品,以替代使用excel构建的预测工具 在大多数情况下,行项目都很简单——X单位为Y,单位成本Z等于行项目成本 然而,对于不可避免的少数类型的项目,规则更加复杂(两种类型的项目加在一起,整数除以六,乘以一个成本项目,得到一个——等等)。最终,这些规则可能会随着时间的推移而改变——事实上,重做该工具的目标之一是让金融部门更容易“调整”公式 所以我的问题是:是否有一种架构或设计模式最适合这种情况?我可以将“规则”存储为javascript,我评估它来进行计算,但这

因此,我正在构建一个基于web的替代品,以替代使用excel构建的预测工具

在大多数情况下,行项目都很简单——X单位为Y,单位成本Z等于行项目成本

然而,对于不可避免的少数类型的项目,规则更加复杂(两种类型的项目加在一起,整数除以六,乘以一个成本项目,得到一个——等等)。最终,这些规则可能会随着时间的推移而改变——事实上,重做该工具的目标之一是让金融部门更容易“调整”公式

所以我的问题是:是否有一种架构或设计模式最适合这种情况?我可以将“规则”存储为javascript,我评估它来进行计算,但这似乎有点黑客和不安全。然而,我想不出更好的解决方案,在基本沙盒环境中允许一些“自由形式”的逻辑


请记住,这(现在)是一个非常小的工具,因此购买一些大型、昂贵的商业智能工具是不可能的

这些是规则还是表达?您是在尝试约束手动输入,还是在尝试动态计算某些字段值?您希望这些规则如何维护?它们是通过DSL维护还是使用UI构建?如果希望在保持安全的同时依赖JavaScript表达式,可以使用现有的JavaScript解析器在执行之前验证表达式是否安全。您还可以构建自己的DSL,对其进行解析,并将其转换为可以执行或创建自己运行时的JavaScript表达式。如果您更关注约束输入,您可以查看。