域驱动设计挑战 - 实体属于哪个域?

时间:2013-02-19 08:31:23

标签: domain-driven-design analysis

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

  1. 启动DDD的主要应用(不是理论上)资源是什么?
  2. 如何找出例如哪个域或模块"发票" 属于?它属于"会计"或"销售"?
  3. 在分离实体和域名时,我可能会遇到许多混淆的例子......

    我该如何克服这个问题?

2 个答案:

答案 0 :(得分:2)

我不是任何方式的DDD权威,但这是我的2美分

1)你读过蓝色圣经吗?这些例子来自Eric Evans构建真实运输平台的经验。我还没有看到任何其他出版的例子和书中的例子一样大。

2) Invoice 可以同时属于两者,但它可能意味着每个域上的不同内容,在销售中它将链接到订单,付款等;在会计中,它将链接到分类帐和帐户。 您将找不到一个独特的域来解决整个ERP问题。我对ERP没有经验,但是我知道销售和CRM,我会说你可能会发现15个以上不同的域名,有些域名是小框架,有些会解决问题的大部分。

关于你的困惑:我过去所做的就是在这里找到与DDD有关的问题(有些是非常有启发性的),并阅读那些对DDD有很多了解的人的博客文章 - lostechies关于DDD的不少好博客。

答案 1 :(得分:1)

  1. 我建议在实践中使用DDD有两种资源:第一种是唯一的着名书籍Applying Domain-Driven Design and Patterns_ With Examples in C# and .NET.pdf,另一种是dotNET Domain Driven Design with C# - Problem - Design - Solution.pdf,但他们都认为你读过Eric埃文的书首先出现。
  2. 我认为没有人有资格很好地回答第二个问题,大多数人会说这取决于背景和你的特定应用。事实上,DDD是关于设计的,它需要复杂的技能(这并不容易)。因此,我建议您通过支持测试逐步开发代码,这样您就可以在正确的时刻到来时改变您的设计(埃里克称之为突破)。