下面是一个简单的场景:
整个工作流程是:
谢谢
DDD
是关于域的,所以首先需要了解业务需求。那么,让我们看看规则是什么:
验证过程
可能需要一些时间,可以取消。如果订单被取消,则可以再次子代订单验证过程
可以拒绝订单或接受订单也就是说,我将把这两个过程分开(订单创建+创建和订单验证)。此外,我将在OrderAggrege
上保留一个status属性,该属性用于强制其不变量。状态可以是:
只有在需要传统行为时才应该添加新状态。
OrderValidationSaga
还具有一个内部状态,用于跟踪从外部服务接收的外部响应。假设我们需要使用两个外部服务。状态将是一个具有两个属性的对象:Service1ISOK
和Service2ISOK
。当任何服务表示订单无效时,则saga拒绝该订单,而不管内部进度如何,并重置其内部状态。当一个服务说OK时,佐贺在内部将其标记为OK,然后检查是否所有服务都OK。如果没有问题,它会告诉聚合发送订单。然后聚合将订单标记为send
并发出一个事件。如果/当进程被取消时,saga将重置其内部状态。
请注意,如果使用CQRS
,则所有状态更改都是通过发送命令和引发事件来完成的。saga将订阅事件并向聚合发送适当的命令。
问题内容: 我对这个问题进行了一些搜索,但发现了非常模糊的答案。在redux中,我们知道状态存储为对象。但是这种状态实际上存储在哪里?它是否以某种方式保存为文件,以后我们可以访问?我所知道的是,它不会以Cookie格式或浏览器的本地存储方式存储它。 问题答案: Redux中的状态存储在Redux存储中的内存中。 这意味着,如果刷新页面,该状态将消失。 您可以想象该商店看起来像这样: redux中的
我觉得Angular对模型的使用让人困惑。Angular似乎采取的方法是,模型可以是任何你喜欢的--即。Angular不包含显式的模型类,您可以使用常规JavaScript对象作为模型。 “编辑”这个问题的第二个答案很有趣,也很接近我目前使用的。
问题内容: 因此,我有了这种elasticsearch安装,可以在用logstash插入数据时使用kibana可视化它们。 conf文件中的所有内容均已注释,因此它使用的是相对于elasticsearch文件夹的默认文件夹。 这怎么可能? 但是,此命令将删除数据: 谢谢。 ps:忘了说我在窗户上 问题答案: 如果您在Linux上安装了ES,则默认数据文件夹位于(CentOS)或(Ubuntu)
我无法让这个C#解决方案(点击下载-666MB或在GitHub上浏览此处)编译: 我得到的错误是 此项目引用了此计算机上缺少的NuGet包。使用NuGet包还原来下载它们。如需详细资讯,请参阅http://go.microsoft.com/fwlink/?LinkID=322105.遗失的档案是..\ packages \ accord . 3 . 8 . 0 \ build \ accord .
问题内容: 被存储在客户端或服务器上的变量? 问题答案: 变量存储的位置由PHP的配置确定。通常这是在Linux / Unix系统上。如果无法100%确定,请使用此功能查看您的特定设置,方法是在您域的中创建具有以下内容的文件:
问题内容: 这可能是一个愚蠢的问题,但是我对Java Logger有点迷茫 我在哪里可以看到日志?同样来自java.util.logging.Logger库的这句话: 在每次记录调用时,记录器最初都会根据记录器的有效日志级别对请求级别(例如SEVERE或FINE)进行廉价检查。如果请求级别低于日志级别,则日志记录调用立即返回。 通过此初始(便宜)测试后,记录器将分配一个LogRecord来描述记录