问题标签 [rules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1034 浏览

user-interface - 设计规则系统的良好参考/提示?

我经常需要实现某种用户可编辑的规则系统——需求通常不同,以至于同一个系统不能直接适用,所以我经常遇到同样的问题——我如何设计一个规则系统那

  1. 是可维护的
  2. 恰当地平衡表现力和易用性
  3. 很容易扩展(如果/当我得到(2)错误时)。

我认为规则系统/DSL 非常有价值,但我对自己正确设计它们的能力感到不舒服。

您必须提供哪些参考/提示可以帮助简化此操作?
由于我遇到的问题的性质,现有语言通常不适用。(例如,您不需要普通计算机用户学习 python 来编写电子邮件过滤器。)类似地,规则语言,如JESS,只是部分解决方案,因为需要构建一些(更简单的)用户界面- 规则语言的顶部,以便非程序员可以使用它。该界面总是涉及删除某些功能,或者使这些功能更难使用,并且该过程会带来与上述相同的问题。

编辑:澄清一下,问题是关于设计规则引擎,我不是在寻找预先构建的规则引擎。如果您建议使用规则引擎,请解释它如何解决有关做出良好设计决策的问题。

0 投票
1 回答
1122 浏览

vba - 通过右键单击将发件人电子邮件动态添加到 Outlook 2007 中的邮件标题规则

我希望 Outlook 2007 的 VBA 代码在任何邮件视图中右键单击邮件,选择将其添加到的规则,并将发件人电子邮件添加到邮件标题包含该规则的值。

只有特定的规则使用消息标题作为标准,所以当我右键单击消息时,只有那些适用的规则应该显示。

0 投票
3 回答
1573 浏览

workflow - 工作流规则集对话框

我们能否以某种方式扩展 RuleSetDialog 类并在我们的 Windows 应用程序中托管?

0 投票
5 回答
1057 浏览

code-analysis - 您停用了 FxCop 中的哪条规则?

我个人还没有使用 FxCop。我们想在进行代码分析之前先进行单元测试。但是,您会永久停用哪些规则?您会在什么情况下暂时停用哪些规则?

0 投票
6 回答
9742 浏览

oop - OOP 有什么规则吗?

最近听说OOP(Java)有9条规则。我只知道抽象、多态、继承和封装四个。OOP 还有更多规则吗?

0 投票
3 回答
1019 浏览

c# - 你将如何实现?:C# 中的树上有很多规则

我有一个表示 C# 代码的数据结构,如下所示:

...我正在使用简单的词法分析器/解析器组合构建它。我需要遍历树并应用大量规则(超过 3000 条)。规则在遇到树中不同(且相当复杂)的模式时运行。例如,当一个类仅在同一个程序集中实现接口时,就会运行一条规则。

我最初的幼稚实现迭代每个规则,然后每个规则遍历树以查找其特定模式。当然,这需要相当多的时间,即使是少量的源代码。

我想这可以比作防病毒软件的工作原理,识别大量二进制代码上的复杂模式。

你会如何建议使用这种软件?

EDT:只是想补充一下:不,我不会重新实现 FxCop。

谢谢

0 投票
3 回答
4067 浏览

java - 免费 / 开源 Java 规则 / 工作流引擎

我正在寻找 Java 规则/工作流引擎。类似于 Microsoft 工作流引擎的东西。

有人可以推荐产品吗?

0 投票
5 回答
34844 浏览

python - 在 Python 中实现“规则引擎”

我正在用 Python 编写一个日志收集/分析应用程序,我需要编写一个“规则引擎”来匹配和处理日志消息。

它需要具有:

  • 消息本身的正则表达式匹配
  • 消息严重性/优先级的算术比较
  • 布尔运算符

我设想一个示例规则可能是这样的:

我正在考虑使用PyParsing或类似方法来实际解析规则并构造解析树。

我想到的当前(尚未实现)设计是为每种规则类型设置类,并根据解析树构造并将它们链接在一起。然后每个规则将有一个“匹配”方法,该方法可以返回一个消息对象,无论它是否匹配规则。

很快,类似:

然后,这些规则类将根据消息的解析树链接在一起,并在顶部规则上调用 match() 方法,该方法将向下级联,直到所有规则都被评估。

我只是想知道这是否是一种合理的方法,或者我的设计和想法是否完全不合时宜?不幸的是,我从来没有机会在大学学习编译器设计课程或类似的课程,所以我几乎是自己想出了这些东西。

在这些事情上有一些经验的人可以插话并评估这个想法吗?

编辑: 到目前为止有一些很好的答案,这里有一些澄清。

该程序的目的是从网络上的服务器收集日志消息并将它们存储在数据库中。除了收集日志消息外,收集器还将定义一组规则,这些规则将根据条件匹配或忽略消息,并在必要时标记警报。

我看不到规则的复杂性超过中等,它们将被应用在一个链(列表)中,直到匹配的警报或忽略规则被命中。但是,这部分与问题不太相关。

就语法接近 Python 语法而言,是的,这是真的,但是我认为很难将 Python 过滤到用户不会无意中使用不希望的规则做一些疯狂的事情的程度。

0 投票
3 回答
671 浏览

code-analysis - 有没有人为 FxCop/StyleCop 制定了任何很酷的规则?

我只是在寻找一些灵感。尤其是在性能和​​安全性方面,命名约定很重要,但并不“酷”;)

即使您的规则仅适用于您的域/项目,但展示了规则的强大功能,请告诉我。

我使用 C#,但我对任何语言的规则都感兴趣。

0 投票
2 回答
1382 浏览

workflow - 运行时 WF 验证错误

我有两个编译良好的工作流基础(.NET 3.5 SP 1)应用程序。它有两个声明性规则条件。两者都很简单,例子:
- !this.Shutdown - this.Runtime == null

该项目可以正确构建,没有错误或警告,但是当我运行应用程序时,它会失败并出现以下异常:error 1342: Activity 'whileNotShutdown' validation failed: Can not find the condition "Shutdown not requested".

在另一个应用程序中,我在策略中使用了一个更复杂的规则集,它会生成以下异常:error 1398: Activity 'Defaults' validation failed: Can not find the rule set "Rule Set1". Check if rule set is defined in the rules file.

我尝试删除 .rules 文件并通过重新创建这两个规则来重新创建它,但这并没有帮助。

问题是:导致此错误的原因是什么?

我尝试过的一些事情:

  • 将工作流规则放在更大的工作流中对问题没有影响。
  • 这个问题现在影响了解决方案中的所有工作流程(甚至那些曾经工作的工作流程)。
  • 使用代码规则条件没有相同的问题 - 问题与规则文件有关。
  • 重建工作流程没有帮助