我经常需要实现某种用户可编辑的规则系统——需求通常不同,以至于同一个系统不能直接适用,所以我经常遇到同样的问题——我如何设计一个规则系统那
- 是可维护的
- 恰当地平衡表现力和易用性
- 很容易扩展(如果/当我得到(2)错误时)。
我认为规则系统/DSL 非常有价值,但我对自己正确设计它们的能力感到不舒服。
您必须提供哪些参考/提示可以帮助简化此操作?
由于我遇到的问题的性质,现有语言通常不适用。(例如,您不需要普通计算机用户学习 python 来编写电子邮件过滤器。)类似地,规则语言,如JESS,只是部分解决方案,因为需要构建一些(更简单的)用户界面- 规则语言的顶部,以便非程序员可以使用它。该界面总是涉及删除某些功能,或者使这些功能更难使用,并且该过程会带来与上述相同的问题。
编辑:澄清一下,问题是关于设计规则引擎,我不是在寻找预先构建的规则引擎。如果您建议使用规则引擎,请解释它如何解决有关做出良好设计决策的问题。