天天看点

什么是领域?怎么拆分领域?企业的业务范围和在这个范围里进行的活动为领域,和软件应用无关。而在领域内,各种业务规则和业务知

作者:软件架构

什么是领域?怎么拆分领域?

企业的业务范围和在这个范围里进行的活动为领域,和软件应用无关。而在领域内,各种业务规则和业务知识盛行,如何有效的把控规则的变化,应对复杂知识,有一个很关键的四字词语,分而治之。

分治法在很多场景下体现了其强大的作用力。领域本身很大,那就拆分,得到更小的领域,也即子域。如同递归调用一般,将一个复杂问题拆分单独求解,而最终将解汇总得到复杂问题解。

怎么拆?拆成怎么样合适?依据什么拆?这些在领域驱动设计中有了一套答案。虽然领域驱动设计不是银弹,但可以说的上是一套极好的系统方法论或称为架构设计的方法论。

在领域驱动设计中,更偏向基于业务拆分,降低业务复杂度,也分离技术实现的复杂度。依照业务拆分后的子领域,本身存在权重上的差异,依照重要性和功能划分为三类:核心域、支撑域和通用域。

货物运输系统(Cargo Tracker Application)是DDD的经典案例:基于DDD分层架构和CQRS架构(Command Query Responsibility Segregation,命令查询职责分离),采用了Spring Boot微服务框架、RabbitMQ消息中间件和Spring Cloud Stream组件、Spring Data JPA等等技术栈。

《DDD领域驱动设计-货物运输系统》技术专栏从实战出发,帮助开发人员快速掌握DDD领域建模方法和微服务应用开发。

什么是领域?怎么拆分领域?企业的业务范围和在这个范围里进行的活动为领域,和软件应用无关。而在领域内,各种业务规则和业务知
什么是领域?怎么拆分领域?企业的业务范围和在这个范围里进行的活动为领域,和软件应用无关。而在领域内,各种业务规则和业务知
什么是领域?怎么拆分领域?企业的业务范围和在这个范围里进行的活动为领域,和软件应用无关。而在领域内,各种业务规则和业务知