我有第一个使用事件源的 CQRS 项目,我想知道与涉及多层的其他项目相比,这种类型的项目是否应该在 Visual Studio 中以不同的方式构建?
例如,在过去创建的项目具有远程处理、应用程序服务、域等层,并且很明显每个层/程序集都触及其下面的层/程序集。这些程序集似乎做了很多事情,并且使用像 NDepend 这样的工具确实说明了项目的结构。
但是,对于 CQRS 项目,最好使用更小的程序集来显示其意图,即用于命令的程序集、另一个用于事件的程序集、另一个用于事件处理程序的程序集等。
现在有了 NDepend,它可以让我更好地表示如何使用程序集。
最佳答案
我通常用较小的项目来构建我的 CQRS 项目,这些项目描述了它们的意图——命令、域、事件、反规范化器、存储库、命令服务等。
通过这种方式可以更轻松地浏览您的解决方案,并且还可以让团队中的其他人(或新加入的团队成员)更轻松地使用系统的各个组件。
此外,如果您有一个团队致力于此工作,您可以轻松地让一个小组主要专注于领域项目(可能是您的高端团队成员),而您的初级成员可以从事反规范化项目。
你最终会得到(可能)更多的项目,但它们会是更小的 block ,并且更容易理解它们的目的。有点像单一职责原则,但是是在项目级别。
希望这有帮助。祝你好运。
关于visual-studio - CQRS/事件溯源项目结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9019088/