我在这里和其他论坛上看到的很多问题的一个常见反应是,“您不需要为此执行DDD,它是一个简单的CRUD应用程序,DDD是过度工程”。DDD是否适合各种应用?
嗯,我是DDD的新手,我觉得DDD中有很多元素具有普遍吸引力并且可以全面使用,无论您的应用程序是否是复杂enuf来强制执行DDD。例如,应用程序的分层,DDD识别的不同工件等等。可能会从基础知识开始,并承认贫血模型,然后向尽可能多的纯度工作/重构。
这种方法听起来不错吗?
或者你会说在每个应用程序的设计中是否有一个根本的选择,就是否采用DDD方式,是“全有还是无”的选择?
UPDATE(提供更多的背景下,为应对休下面的评论)
我建立围绕现有RuleEngine样的应用,基本CRUD和一些验证,不变量,然后处理的Web应用程序的部署。规则创作和语义检查是由独立的一段代码完成的,我将其作为CRUD的一部分进行调用,并且在我的代码中没有任何语义特定的逻辑。我正在尝试为这个应用程序使用DDD,但我发现它可能不够复杂以适应DDD范例。没有为该领域定义的无处不在的语言,即该语言除了命名所涉及的实体集之外还不够专业化。我听到我的领域专家在创建,编辑和删除实体方面发表演讲。
你的问题不太可能引起很多反应,因为你并没有真正面对特定的挑战,而是试图开始关于给定方法的适用性的广义讨论,答案通常是“它取决于”。 – 2012-08-06 08:26:59
谢谢休!对于有针对性的评论和downvote,PLZ看到上面的更新,试图添加一些上下文,希望这将有助于它通过“它取决于”点:)。 – redzedi 2012-08-06 09:01:59
在这种情况下,我不是downvoter。 +1提供更多细节。 – 2012-08-06 09:11:00