您可以使用CQRS(Command-Query Responsibility Segregation)架构模式来构建一个像StackOverflow这样的站点吗?我对CQRS和DDD(域驱动设计)相对陌生,并且正在探索该模式,并尝试对我熟悉的模式进行建模。尽管我可以看到CQRS对于像StackOverflow这样的站点的许多方面很有用,但有一些我不确定的地方是可能的(或者至少我不能立即弄清楚)。具体做法是:CQRS可以用于像StackOverflow这样的网站吗?
- 问问题当我创建一个问题,我看到它马上 并可以进行编辑。在 CQRS中,我发出一个命令,如 'AskQuestion',并创建一个名为'QuestionAsked'的事件 。最终, 问题被推送到 非规范化数据存储。但是SO的 体验是直接的。 CQRS可以使用 吗?
- 投票我的投票 立即反映。在CQRS中,我想这些命令/事件 最终会通过事件 总线到读取存储。但是,SO立即给我 。
我的担忧真的围绕着SO提供的即时反馈的概念。 CQRS能提供吗?如果是这样,这将如何完成?有没有很好的例子说明如何处理这个问题?
如果有帮助,我的环境是VS2010/C#/ SQL2008R2,但我可以接受SQLite等其他选项。我还在研究NCQRS和LOKAD的框架,以及Mark Nijhof的示例和计划下载Greg Young的样本。我没有发现CQRS样品。
谢谢!
“假”和“诡计”并不是很令人放心......这看起来更像是一种破解,而非解决方法。 – 2010-09-09 15:16:23
通过假我的意思是,你不必发送数据回数据库/服务器,然后再转到需要数据的屏幕。在数据通过系统(写入和读取)之前不会有问题,但您必须训练用户刷新屏幕或设置某种牵引机制。这可能会影响用户体验。而且,这不是一个聪明的黑客;-) – Fossmo 2010-09-16 20:52:54
让人放心,假的正是你需要的!这是一个思想转变... – gkdm 2010-10-14 20:51:16