首页 / 知识
关于用户界面:设计规则系统的良好参考/技巧?
2023-04-15 15:18:00

Good references / tips for designing rule systems?我经常需要实施某种用户可编辑的规则系统-需求通常相差甚远,以至于同一系统不能直接适用,因此我经常遇到相同的问题-我如何设计规则系统那 我认为Rule系统/ DSL非常有价值,但是我对自己正确设计它们的能力感到不满意。
您需要提供哪些参考/技巧以帮助简化此过程? 编辑:澄清一下,问题是关于设计规则引擎,我不是在寻找预先构建的规则引擎。如果您建议使用规则引擎,请解释一下规则引擎如何解决有关制定良好设计决策的问题。
我们由供应商提供了此工具的内部演示: 作为一家公司,我们在规则引擎(例如Cleverpath Aion)方面拥有丰富的经验,但主要是面向开发人员的工具。该工具(rulexpress)非常面向商务人士。它不是规则引擎。但是它可以将所有数据输出为xml(基本上是您喜欢的任何格式),然后我们将其视为真实规则引擎的输入,例如Windows Workflow Foundation(不是更大/更好的规则引擎之一,但仍然是)。 该工具本身看起来还不错,这是我在面向开发人员的工具中从未见过的东西。 还有一些用于WF的规则管理工具,如果这是您选择的规则引擎,请查看InRule。
在澄清原始问题后进行编辑: 我们对此很幸运:http://msdn.microsoft.com/zh-cn/library/bb472424.aspx 首先,通常不建议让最终用户定义规则。那是因为他们没有开发背景,可以简单地编写进入无限循环的代码或其他奇怪的事情。 因此,要么系统必须防止这种行为(从而使其变得更复杂),要么接受这种可能性,要么不允许最终用户这样做。 如果您使用的是.NET,那么通过扩展Boo编译器来创建自己的DSL非常简单(即使用Rhino.DSL,您可以使用一个类的简单DSL)。 我发现的一件事是,能够将规则定义为表达式树,因此实现起来非常简单。正如您正确提到的,项目之间的需求是如此不同,以至于您每次都必须重新实现。表达式树与诸如访问者模式之类的东西共同构成了一个非常易于扩展的(无双关语)表达框架。而且,您可以轻松地将一个非常动态的GUI放在表达式树的顶部,这可以满足您的要求。 希望这听起来不像是我说的一切都像用锤子钉子一样,因为事实并非如此……只是根据我的经验,这已经不止一次了:-) 要考虑的Ruby实现是Ruleby(http://ruleby.org/wiki/Ruleby) |
最新内容
相关内容
linux系统查版本命令?
linux系统查版本命令?,系统,信息,名称,状态,设备,命令,软件,工具,版本,终端,linux下如何查看grub版本号1、首先连接上Linux主机,如图所示,使Linu强大系统linux命令?
强大系统linux命令?,系统,工作,地址,信息,命令,管理,名称,位置,目录,控制台,linux操作系统教程:[2]linux命令选项command [options] [argument退出linux系统命令?
退出linux系统命令?,系统,状态,工作,档案,命令,电脑,工具,基础,信息,时间,linux怎么关闭系统?shutdown shutdown命令用于关闭Linux系统。有些linux系统cmp命令?
linux系统cmp命令?,系统,工作,标准,信息,命令,一致,目录,指令,功能,文件,请问在LINUX中,内部命令和外部命令分别是什么?1、内部命令是指shelllinux系统命令行工具?
linux系统命令行工具?,工具,系统,工作,状态,命令,地方,标准,信息,环境,基础,Linux:Python编写Linux自定义命令工具state是命令执行结果的状态,rlinux系统进入后命令?
linux系统进入后命令?,系统,密码,工程,电脑,位置,软件,传播,代码,工作,一致,linux系统安装完成后第一次进入的是什么界面?这个是Linux系统的登linux系统刷新命令?
linux系统刷新命令?,系统,工具,情况,最新,单位,工作,管理,信息,软件,服务,Linux系统中进行磁盘管理的常用命令有哪些查看磁盘空间 -df df命令linux命令所有用户?
linux命令所有用户?,系统,密码,信息,情况,名称,命令,用户,时间,地址,位置,如何查询linux系统中所有用户的用户名和密码首先进入到linux桌面,在linux系统sed命令?
linux系统sed命令?,资料,系统,工作,跨行,代理,时间,简介,命令,文件,都会,Linux下sed命令使用全解析sed命令行格式为:sed [-nefri] ‘command’linux命令进入用户?
linux命令进入用户?,系统,密码,用户,地址,信息,软件,命令,用户名,联系方式,电脑,linux进入第一次启动+怎么样创建用户?1、进入Linux系统,登陆管linux命令用户管理?
linux命令用户管理?,系统,密码,管理,工作,信息,地址,工具,命令,用户,基础,LInux用户管理查看/etc/group文件,只存在名称为modifiedgroup的用户linux系统维护命令?
linux系统维护命令?,系统,工作,信息,策略,发展,网络,时间,情况,工具,服务,系统加固之Linux安全加固1、修改系统密码;查看系统是否已设定了正确U