对于这里和其他论坛提出的很多问题,我看到的一个常见反应是“你不需要为此做 DDD。它是一个简单的 CRUD 应用程序,DDD 是一种过度工程”。
好吧,我是 DDD 的新手,我觉得 DDD 中有很多元素具有普遍的吸引力,可以全面使用,无论您的应用程序是否复杂,都需要强制 DDD。例如,应用程序的分层、DDD 识别的不同工件等。可能从基础开始,公认的贫乏模型,然后朝着尽可能多的纯度工作/重构。
这种方法听起来不错吗?
或者您会说每个应用程序的设计都有一个基本选择,即是否采用 DDD 方式,一种“全有或全无”的选择?
更新 (提供更多上下文,以回应休在下面的评论)
我正在围绕现有的 RuleEngine 类型的应用程序构建一个 webapp,基本上是 CRUD 和一些验证、不变量,然后是部署过程。规则编写和语义检查是由我作为 CRUD 的一部分调用的独立代码完成的,并且在我的代码中没有任何特定于语义的逻辑。我正在尝试将 DDD 用于此应用程序,但我发现它可能不够复杂,无法适应 DDD 范例。没有为该领域定义普遍存在的语言,即除了命名所涉及的实体集之外,该语言还不够专业。我听到我的领域专家谈论创建、编辑、删除实体。