2

我正在分析一个相当企业资源规划软件,因为 ERP 涵盖了从会计到销售和 CRM 的许多领域,所以我选择使用领域驱动设计。现在我有两个问题:

  1. 启动 DDD 的主要应用(理论上不是)资源是什么?
  2. 例如,我如何找出“发票”属于哪个域或模块?它属于“会计”还是“销售”?

可能有很多这种情况的例子,我在分离实体和域时感到困惑......

我怎样才能克服这个问题?

4

2 回答 2

2

无论如何,我都不是 DDD 权威,但这是我的 2 美分

1) 你读过蓝色圣经吗?此处的示例取自 Eric Evans 构建真实航运平台的经验。我还没有看到任何其他已发布的示例与书中的示例一样大。

2)发票可以同时属于两者,但在每个域上可能意味着不同的东西,在销售中它会与订单、付款等相关联;在会计中,它将链接到分类帐和帐户。您不会找到一个独特的领域来解决整个 ERP 问题。我对 ERP 没有经验,但了解销售和 CRM,我会说你可能会发现 15 多个不同的领域,有些是小型框架,有些会解决问题的一部分。

关于你的困惑:我过去所做的是在 SO 中找到与 DDD 相关的问题(有些真的很有启发性),并阅读了对 DDD 非常了解的人的博文 - lostechies有很多关于 DDD 的好博文.

于 2013-02-19T08:48:13.933 回答
1
  1. 我建议在实践中使用两个资源:第一个是唯一的著名书籍Applying Domain-Driven Design and Patterns_ With Examples in C# and .NET.pdf,另一个是dotNET Domain Driven Design with C# - Problem - Design - Solution.pdf但它们都假设您首先阅读了 Eric Evan 的书。
  2. 我认为没有人有资格很好地回答第二个问题,大多数人会说这取决于上下文和您的特定应用程序。硬道理是 DDD 是关于设计的,它需要复杂的技能(这并不容易)。所以我建议你通过支持测试逐步开发你的代码,这样你就可以在适当的时候改变你的设计(这就是 eric 所说的突破)。
于 2013-02-20T18:36:35.027 回答