【发布时间】:2011-01-28 21:00:33
【问题描述】:
我一直以 SOA 类型的方式开发代码。今年我一直在尝试做更多的 DDD,但我一直觉得我没有得到它。在工作中,我们的系统是负载平衡的,并且设计为没有状态。架构是:
网站
===物理层==
主要服务
==物理层==
服务器 1/服务 2/服务 3/服务 4
只有服务器 1、服务 2、服务 3 和服务 4 可以与数据库通信,主服务根据订购的产品调用正确的服务。每个物理层也是负载均衡的。
现在,当我开发一项新服务时,我会尝试在该服务中考虑 DDD,即使它并不真正适合它。
我使用良好的 DDD 原则,例如实体、值类型、存储库、聚合、工厂等。
我什至尝试过使用 ORM,但它们似乎不适合无状态架构。我知道有一些方法可以解决它,例如使用 IStatelessSession 而不是 ISession 和 NHibernate。然而,ORM 只是觉得它们不适合无状态架构。
我注意到我实际上只使用了 DDD 教给我的一些概念和模式,但整体架构仍然是 SOA。
我开始认为 DDD 不适合大型系统,但我确实认为某些模式和概念确实适合大型系统。
就像我说的,也许我只是没有掌握 DDD,或者我过度分析了我的设计?也许通过使用 DDD 教给我的模式和概念,我正在使用 DDD?不确定这篇文章是否真的存在问题,但我在试图弄清楚 DDD 在整个系统中的位置以及它的真正可扩展性时产生了更多想法。事实是,我认为我什至不知道 DDD 是什么?
【问题讨论】:
标签: domain-driven-design design-patterns soa