如果我给你五十万欧元,你会很高兴。如果我给你一百万欧元,但在回家的路上,你遭受抢劫失去五十万,你会不高兴,即使最终的结果是一样的。在心理学上,这叫做损失厌恶。
也就是说,损失比收益对我们有着更高的影响。我们不是纯理性的经济动物。拥有一百万是你的状态,你遭受抢劫行为后,虽然状态还是50万,但是抢劫造成的损失行为要超过你的收益状态。导致状态的行为比实际状态本身更重要。
领域驱动设计如此吸引人,因为软件开发历来主要是关于数学,是技术问题。 DDD使语言学成为中心问题。用一个公式表达: F(X) = y和G(X) = Y = / = > F = G或:正因为两种行为导致同样的结果,并不意味着他们是可替换的。
在领域驱动建模中,状态是行为的副作用。状态是只具有影响新行为的潜力。一个聚合并不只是一群对象组合在一起,代表某种状态,聚合还管理着其子对象彼此的行为,只有相关行为才能改变相关状态。
Event Sourcing 根据这种思想推导出一个逻辑结论,我们忘记持久状态,而是持久那些导致状态改变的领域事件,我们保存的是行为而不是结果。
当我们需要状态,我们重播事件并解释它们。这样做的好处是,如果我们改变行为的有关解释,我们可以不必坚持过去的状态。也就是说,改变行为代码后,过去的状态也改变了,但是这也许正是我们需要的,让我们对业务逻辑有更灵活的掌控。