在DDD和CQRS中,对于读取查询,什么是允许接口和简单测试的策略?

时间:2015-04-14 00:53:27

标签: php domain-driven-design cqrs

我正在使用PHP / MySQL ......

我在域“命令”端使用存储库接口。这很顺利。但我仍然坚持在“查询”(阅读)方面做什么。我是否通过我发现的一些常见相似性将每个查询作为单独的方法分组?或者我是否将每个查询都设为自己的类?我应该如何使用接口进行测试(以后更容易更换)?

我研究过的一些地方:

这些解决方案令人费解?

1 个答案:

答案 0 :(得分:1)

我们目前使用第二个c#链接的方法来完成我们的一个项目。如果您想使用某种类型的查询外观,那么这是我遇到过的最好的一个。我最喜欢它的是你创建查询对象和查询处理程序,然后通用查询处理器完成将对象传递给正确的处理程序的工作。

总体而言,它运作良好,但仍然感觉我工作比我需要的更努力。我不确定这个查询抽象给了我什么,除了要维护更多。可测试性通常是对该问题的响应,但我不会对单元测试查询进行单元测试。我认为单元测试最好留给可能破坏/影响其他代码的代码。查询是否真的可以破坏在常规测试中不会立即显现的任何内容?它既可以工作,也可以不工作。

如果您确实有令人信服的理由使用外观,那么我建议将与相关的查询分组到一个界面中。例如" IBillingQueries"和" ICustomerQueries"。