我正在努力理解DDD,但是我们应该分离域的范围对我来说似乎有点棘手。
考虑几个案例:
假设我有一个utility域,带有2个助手函数。
GenerateUUIDValidateRegex我是否也应该将这两个域划分为utility/uuid和utility/regex域?
假设我有GenerateUUID的第一个版本实现。现在,很有可能会出现一个V2、V3等,并且有可能会发生重大变化。我是否应该将它们提取到单独的域中,如utility/uuid/v1等,这些域通过utility/uuid/common共享共同的功能?
假设数据库中有以下表(假设为关系表):
现在,假设我有两个操作,GetUsersWithAParticularPreference和GetPreferencesForParticularUser。
我是否也应该将它们分割成单独的域,GetUsersWithAParticularPreference在models/users中,GetPreferencesForParticularUser在models/users/preferences中,而不管它们访问哪个数据库/表?
如果我在理解DDD方面也出了问题,请指导我。
编辑:
我知道我上面发的那些案子可能有点太基础了。然而,我正在努力使我的基础正确,并设置一些指导方针,以建立一个基础。
发布于 2019-10-17 16:33:43
发布于 2019-10-17 16:04:40
DDD有不同的方面。战略和战术。战略设计是将您的业务划分到不同的有限上下文中,以便更好地为您的业务服务。当分割上下文时,其中一个应该对另一个上下文的依赖性最小。
因此,将解决方案分解为不同的上下文需要使用业务知识。
DDD是解决复杂的业务问题。您要解决的问题不是一个复杂的业务问题,DDD将是一个过头的问题。
https://softwareengineering.stackexchange.com/questions/399812
复制相似问题