dddplus / dddplus-demo

♨️ Demonstrate how to use DDDplus to build a complex OMS.演示如何使用DDDplus实现一套订单履约中台OMS
https://github.com/funkygao/cp-ddd-framework
Apache License 2.0
319 stars 126 forks source link

[讨论] 你希望演示工程里体现哪些内容 #9

Open funkygao opened 4 years ago

funkygao commented 4 years ago

感谢留下你的意见和建议!

carllhw commented 4 years ago

IBaseTranslator,DDD分层模型的类型转换,DTO -> Creator -> Entity <-> PO. 看demo里的Entity只能通过Creator来创建,希望PO-> Entity能给示例 另外,最好提供两个查询的示例,简单查询和复杂的sql查询,这两个如何用DDDPlus来实现

carllhw commented 4 years ago

核心域调用库存支撑域的领域服务时,能有个复杂数据类型的对象传递,而不是简单的字符串,是不是也需要通过核心域model -> 支撑域Creator -> 支撑域Model -> rpc的dto?

funkygao commented 4 years ago

核心域调用库存支撑域的领域服务时,能有个复杂数据类型的对象传递,而不是简单的字符串,是不是也需要通过核心域model -> 支撑域Creator -> 支撑域Model -> rpc的dto?

不需要,这属于shared kernel模式,直接使用domain model,不要DTO

carllhw commented 4 years ago

核心域调用库存支撑域的领域服务时,能有个复杂数据类型的对象传递,而不是简单的字符串,是不是也需要通过核心域model -> 支撑域Creator -> 支撑域Model -> rpc的dto?

不需要,这属于shared kernel模式,直接使用domain model,不要DTO

那domain model定义放到order-center-stock-domain里?但cp-oc-domain只依赖order-center-stock-spec

carllhw commented 4 years ago

如果在pattern里需要通过rpc来获取数据,并转换成核心域的model存储,但是pattern只能用spec的内容,没法使用model creator,这种要如何处理呢

funkygao commented 4 years ago

核心域调用库存支撑域的领域服务时,能有个复杂数据类型的对象传递,而不是简单的字符串,是不是也需要通过核心域model -> 支撑域Creator -> 支撑域Model -> rpc的dto?

不需要,这属于shared kernel模式,直接使用domain model,不要DTO

那domain model定义放到order-center-stock-domain里?但cp-oc-domain只依赖order-center-stock-spec

4f50da7191f922ea5fe806da59eed756bb4e3bd7

改进了一下demo,看看这个commit能否回答你的疑问

funkygao commented 4 years ago

如果在pattern里需要通过rpc来获取数据,并转换成核心域的model存储,但是pattern只能用spec的内容,没法使用model creator,这种要如何处理呢

pattern是不可能create model的,创建domain aggregate是在core domain里做的。pattern依赖spec,没有依赖domain,主要是想给扩展做些约束,不想直接暴露。这样中台的控制权大些,否则容易失控

pattern可能会创建vo,典型场景:数据补全。那就在spec层开放出对应补全的方法,以便pattern可以在RPC获取数据后,回补domain model数据

carllhw commented 4 years ago

如果在pattern里需要通过rpc来获取数据,并转换成核心域的model存储,但是pattern只能用spec的内容,没法使用model creator,这种要如何处理呢

pattern是不可能create model的,创建domain aggregate是在core domain里做的。pattern依赖spec,没有依赖domain,主要是想给扩展做些约束,不想直接暴露。这样中台的控制权大些,否则容易失控

pattern可能会创建vo,典型场景:数据补全。那就在spec层开放出对应补全的方法,以便pattern可以在RPC获取数据后,回补domain model数据

数据补全,spec层开放出补全的方法,可以在spec层用java bean来作为参数来传递到domain层吗

funkygao commented 4 years ago

如果在pattern里需要通过rpc来获取数据,并转换成核心域的model存储,但是pattern只能用spec的内容,没法使用model creator,这种要如何处理呢

pattern是不可能create model的,创建domain aggregate是在core domain里做的。pattern依赖spec,没有依赖domain,主要是想给扩展做些约束,不想直接暴露。这样中台的控制权大些,否则容易失控 pattern可能会创建vo,典型场景:数据补全。那就在spec层开放出对应补全的方法,以便pattern可以在RPC获取数据后,回补domain model数据

数据补全,spec层开放出补全的方法,可以在spec层用java bean来作为参数来传递到domain层吗

sure,domain层是实现spec层的,领域模型的一致性和保护等由domain层控制

ouzhrm commented 3 years ago

自我认为,文档写的还是很乱,可以参考下开源项目如elasticsearch, mysql, redis这些文档格式。有些概念看不明白,有个名词解释更好。