限界上下文和四色原型,请banq大牛帮助解答一下疑问吧,谢谢

         
abel
15-01-28 6 1236 3

请banq大牛帮助解答一下疑问吧,谢谢
最近结合着《Java Modeling in Color with UML(四色原型)中文版》看《实现领域驱动设计》,感觉四色原型里提供的组件并未按照领域驱动设计的思想去做。我把四色原型中的物料资源管理中有好几个组件,我只画了3个,分别是物料资源组件、发给供应商的PO组件、供应商交付组件,发现这些组件之间的关系挺复杂。



问题1:子域与限界上下文的划分
划分方法1:权且将物料资源管理做为一个子域,那么物料资源组件、发给供应商的PO组件、供应商交付组件算是这个子域中一个限界上下文,为何说“权且”,因为我不确定这样划分是否正确。



划分方法2:我感觉划分方法1不太正确,因为《实现领域驱动设计》中说最好是一个子域对应一个限界上下文。因此,将物料资源组件、发给供应商的PO组件、供应商交付组件分别算一个子域,每个子域中有一个限界上下文



划分方法3:把整个物料资源管理(包括这3个组件)整个做为一个限界上下文

问题2:上下文划分的不同,会影响着之间的交互
无论按照哪一种划分方法,《Java Modeling in Color with UML》书中的关联关系都太复杂,感觉不是以聚合根进行交互的。应该如何交互呢?



[该贴被abel于2015-01-28 14:37修改过]

3
banq
2015-01-29 11:24

四色模型有助于上下文的区分。

我将四色模型映射到语言语义:什么人在什么地方做了什么事情。

什么人是主体Subject,是四色中角色Role,你这个案例中:物料管理员在仓库对物料进行管理(增删改查CRUD),这是一个场景上下文。

比较有分歧的是供应商这块,是否可理解为:供应商(Role)接受采购单和完成采购单。这个上下文有一个共同主体subject是供应商,它们围绕的一个实体是采购单,第一阶段是接受采购单,第二阶段是完成采购单,这两个阶段是一个事务过程,也就是有前后因果一致性关系的,将逻辑强一致性封装在一起是上下文划分的主要依据。

以上是我个人分析,仅供参考。

参考:通过实体快照实现事件建模
[该贴被banq于2015-01-29 11:24修改过]

abel
2015-02-03 14:12

我想结合jdomframework框架理解一下,但是源码下载之后,构建项目出现错误,项目中有gradle,有ant,有maven,使用哪个构建?
我使用maven构建example/match项目无法启动,有没有相关的部署文档呢

abel
2015-02-06 13:21

非常感谢您的解答,我特别想将JF框架应用到新的项目中,但是缺少这个技术能力,看了好几天的DDD,CQRS,ES,感觉心理有这种概念也能理解。但是实际分析的时候,却又不得要领,不知道如何分析,能否详细指点一下JDON分析法,就是您那张经典的纵横坐标分析方法的图,如何分析?例如从横坐标场景出发,如何得出状态。
第二个问题是
我看了jdonmvc+cqrs+ds的例子,大概的需求是对用户进行增删改查吧,在ResourceManagerContext类中有添加(post方法)、删除(delete方法)、修改(update方法),增删改查方法类似,为什么单单update方法里使用commandHandler类发出命令,而其他几个方法都是直接使用ES来发布事件的?
[该贴被abel于2015-02-06 13:49修改过]


abel
2015-02-06 14:54

20150206物料管理
1、物料分为多种类型

上面的图是我想举的例子,文字打了半天突然就没了,只剩下图了,又要重新打一遍。
举个例子:生产一个纸质飞机模型,需要胶水和卡纸,胶水可以由不同供应商供应,每个供应商供应的胶水有不同规格,有瓶装的200ml,盒装的100ml,胶棒的1管
从上面简单需求得知,至少要
1、产品管理
2、供应商管理
3、物料管理
我们单取物料管理的CRUD来说,要对物料类型CURD和物料CURD
那么使用JDON分析法,就是您那张经典的横纵坐标分析法
如何从纵坐标得出边界,上下文,聚合根
如何从横坐标得出职责,状态
先谈谈我的认识:
纵坐标分析:
物料类型CRUD和物料CRUD算是一个上下文,还是两个上下文呢?这似乎没有什么严格的规则来划分上下文吧,直觉上应该是一个上下文。
在一个上下文中,有2个聚合根,不知道是不是这样的?即上面的那张图。不知道对不对
横坐标的场景就是增删改查场景,由场景得知聚合根的职责就是增删改查。
那么状态是什么?如何得出的呢?

得出这些之后,又如何将JDON框架应用起来呢?下面是我理解的JDON框架在DDD,CQRS,ES方面的用处是不是?


2Go 1 2 下一页