DDD战略5 代码模型

2019-05-02  本文已影响0人  莫小归

GitChat课程《领域驱动设计--战略篇》笔记,课程作者张逸

一.遵循DDD思想的代码模型

1.代码模型1
- application
- interfaces
- domain
- repositories
- gateways
      - controllers
      - persistence
      - mq
      - client
      - ...
2.代码模型2
- application
- domain
- interfaces
      - repositories
      - mq
      - acl
- gateways
      - ohs
      - persistence
      - mq
      - acl
      - ...

二.进程间通信的代码模型

1.以下订单案例中订单上下文与通知上下文为例
原代码架构 进程间通信代码结构 架构图

三.进程内通信的代码模型

1.对各种因素的考量

1)简单:在下游限界上下文的领域层直接实例化上游限界上下文的领域类
2)解耦:在下游限界上下文的领域层通过上游限界上下文的接口和依赖注入进行调用
3)迁移:在下游限界上下文中定义一个防腐层,而非直接调用
4)明晰:为保证领域层代码的纯粹性,避免在当前限界上下文中依赖不属于自己的代码模型

2.仍以下订单场景为例
进程内通信架构图

区别在于NotificationClient不再通过跨进程调用的方式发起对RESTful服务的调用,即使在Notification Context中定义了这样的OHS。而是直接通过实例化的方式调用Notification Context应用层的Notification AppService。这是在OrderContext中唯一与NotificationContext产生依赖的地方

3.总结

四.代码模型的架构决策

1.代码模型的定义
软件架构视图
2.系统层次的代码模型设计
C4模型
上一篇下一篇

猜你喜欢

热点阅读