genexus - 交易规则重新排序——这是个好主意吗?
问题描述
如果您有一个具有复杂规则的事务,则很难在规则部分中对它们进行逻辑“管理”,因为它们执行的顺序很可能不是它们在规则中出现的顺序。您可以打开详细导航并查看评估树,但我认为这方面可能会有所改进。
如果有一个模型偏好或对象偏好,您可以设置它,在规范之后,重新排序代码中的规则以匹配评估树?可能会有一些关于事情何时发生的明确评论,我会很好地看到这些“时间评论”,其中没有任何内容,所以我知道规则什么时候会触发,什么时候不会触发。
我们为我们的知识库使用模式,并且规则、事件等的操作已经发生,所以在这种情况下,这些不会被改变。但是手动添加的规则(在模式规则之外)可以重新排序。
此外,如果插入了“时间注释”,这可能有助于开发人员公开可用的时间段,而不必重复参考 wiki。
这是一个好主意吗?
解决方案
我不这么认为。这几乎有两个原因,第一个是技术性的:当规则匹配触发标准时,GeneXus 会“按顺序”执行规则(它们是如何放置在规则中的)。因此,重新排序规则可能会在您的应用程序中产生意外行为。你可能会争辩说 GeneXus 会让那些规则放在那里,但是,它仍然很危险。
第二个与我们的“编程方式”有关。我在代码中放了很多注释,我喜欢注释,甚至在规则中。如果 GeneXus 重新排序规则,它如何知道哪些评论属于哪个规则。至少对我来说,我不喜欢“工具”重新组织/重新排序我的代码。我敢打赌,我不是唯一一个。
推荐阅读
- android - 如何从 Raspberry PI 4 流式传输到 Android
- hadoop - 无法将 Power BI 连接到 Hadoop HDFS 无法获取内容
- python - Python中的项目根文件夹路径
- python - 删除除第一行之外的所有满足条件的行
- autodesk-forge - 如何使用 Model Derivative API 检索周长和特定几何属性?
- javascript - React.js If 语句
- node.js - 如何使用 Adonis 发出 json-rpc 请求
- python - 如何在将数据保存为 csv 时自动从给定写入文件名?
- image - 如果 crossOrigin 是匿名的,为什么 MDN 上的 CORS 会阻止图像请求?
- sql - T-SQL 'IF' 条件无法识别列名