领域驱动设计,架构师在微服务时代不可或缺的必修课?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4595个文字,预计阅读时间需要19分钟。
本篇深入剖析DDD的分层架构,从DDD架构视角探讨其与MVC架构的差异,总结DDD架构规范,并从事物两面性角度阐述DDD存在的问题。微服务的一层是数据库层面的,另一层则是领域层的。
本篇详细剖析DDD的分层架构,从DDD架构视角看MVC架构的问题,总结DDD架构规范,并也从事物两面性角度说明DDD存在一些问题。微服务的拆分一个层面是数据库层面的拆分,一个层面就是上层应用功能业务层面的拆分,但如果系统上层逻辑是依赖底层一个大的数据资源,那么微服务拆分不当就有可能导致拆分后的微服务出现大量的跨库查询、分布式事务的情况。 DDD架构 传统分层架构分层架构设计就是为了帮助我们达到高内聚、低耦合复用性设计和扩展性设计。整洁架构、CQRS、六边形架构等微服务架构都旨在实现“高内聚低耦合”,而分层架构基本原则是每层只能与位于其下方的层发生耦合。分层架构又分为两种:
- 严格分层架构(Strict Layers Architecture),某层只能与其直接下层耦合。
- 松散分层架构(Relaxed Layers Architecture),允许任意上层与任意下层耦合。由于用户接口层和应用服务通常需要与基础设施打交道,许多系统都是该架构。
DDD分层架构包含用户接口层、应用层、领域层和基础层;通过这些层次划分,我们可以明确微服务各层的职能,划定各领域对象的边界,确定各领域对象的协作方式。DDD的分层架构中基础层与用户接口层、应用层和领域层都可能有关系,提供基础能力给其他三层调用。
- 用户接口层:显示信息给用户,如对外的model、模型的转换。一般包括用户接口、Web 服务等,只处理用户显示和用户请求,不应包含领域或业务逻辑。用户接口层很重要,在于前后端调用的适配,Facade接口就起很好的作用,包括DO和DTO对象的组装和转换等。
- 应用层:主要包含线程调度,应用服务,与模型进行与实体无关的业务逻辑。理论上不应有业务规则或逻辑,而主要是面向用例和流程相关的操作。
本文共计4595个文字,预计阅读时间需要19分钟。
本篇深入剖析DDD的分层架构,从DDD架构视角探讨其与MVC架构的差异,总结DDD架构规范,并从事物两面性角度阐述DDD存在的问题。微服务的一层是数据库层面的,另一层则是领域层的。
本篇详细剖析DDD的分层架构,从DDD架构视角看MVC架构的问题,总结DDD架构规范,并也从事物两面性角度说明DDD存在一些问题。微服务的拆分一个层面是数据库层面的拆分,一个层面就是上层应用功能业务层面的拆分,但如果系统上层逻辑是依赖底层一个大的数据资源,那么微服务拆分不当就有可能导致拆分后的微服务出现大量的跨库查询、分布式事务的情况。 DDD架构 传统分层架构分层架构设计就是为了帮助我们达到高内聚、低耦合复用性设计和扩展性设计。整洁架构、CQRS、六边形架构等微服务架构都旨在实现“高内聚低耦合”,而分层架构基本原则是每层只能与位于其下方的层发生耦合。分层架构又分为两种:
- 严格分层架构(Strict Layers Architecture),某层只能与其直接下层耦合。
- 松散分层架构(Relaxed Layers Architecture),允许任意上层与任意下层耦合。由于用户接口层和应用服务通常需要与基础设施打交道,许多系统都是该架构。
DDD分层架构包含用户接口层、应用层、领域层和基础层;通过这些层次划分,我们可以明确微服务各层的职能,划定各领域对象的边界,确定各领域对象的协作方式。DDD的分层架构中基础层与用户接口层、应用层和领域层都可能有关系,提供基础能力给其他三层调用。
- 用户接口层:显示信息给用户,如对外的model、模型的转换。一般包括用户接口、Web 服务等,只处理用户显示和用户请求,不应包含领域或业务逻辑。用户接口层很重要,在于前后端调用的适配,Facade接口就起很好的作用,包括DO和DTO对象的组装和转换等。
- 应用层:主要包含线程调度,应用服务,与模型进行与实体无关的业务逻辑。理论上不应有业务规则或逻辑,而主要是面向用例和流程相关的操作。

