前几天我在 DDD 上观看了 Greg Young 的一个屏幕投射,它谈到了持久化一个对象的所有状态转换,而不是保存时的状态,然后加载它“重播”所有这些消息以恢复当前状态。这个似乎是一个非常有趣的想法,但我不知道这个特殊的东西叫什么!我想了解更多关于它的信息,但是如果没有它的真名,我很难获得任何体面的结果。
任何人都可以启发我吗?
屏幕演员是@http ://www.infoq.com/presentations/greg-young-unshackle-qcon08
前几天我在 DDD 上观看了 Greg Young 的一个屏幕投射,它谈到了持久化一个对象的所有状态转换,而不是保存时的状态,然后加载它“重播”所有这些消息以恢复当前状态。这个似乎是一个非常有趣的想法,但我不知道这个特殊的东西叫什么!我想了解更多关于它的信息,但是如果没有它的真名,我很难获得任何体面的结果。
任何人都可以启发我吗?
屏幕演员是@http ://www.infoq.com/presentations/greg-young-unshackle-qcon08
Michael Perry 的评论称其为历史建模。
他还说他已经“为历史建模定义了一套规则和框架:”并提供了几个链接:(我没有足够的代表来发布它们)
http://correspondence.codeplex.com/
我没有亲自研究或使用过状态转换模型,但听起来确实很有趣。
Martin Fowler 将此称为Event Sourcing。Greg Young 甚至在他的分布式领域驱动设计系列中引用了 Fowler,他在其中阐明了有关演示的一些细节;您可能想阅读它。
有点偏离了切线... Rocky Lhotka 在他的CSLA 业务对象框架中实现了他称之为 n 级撤消(在其他地方称为多级撤消)的东西,但这仅适用于内存更改的历史和(我知道of) 不会持续到数据库中。
DDD 的人往往对 CSLA 评价不高,但其中包含的一些想法和实现绝对值得研究。