领域驱动设计基本原理
领域模型:是领域专家、软件设计人员、软件开发人员共同工作的结果
领域驱动设计:嫁接领域知识到架构设计的过程
基本组成: 表示层、应用程序层、领域层、基础架构层
战术设计中领域模型核心概念:
实体:有连续生命周期管理的唯一标识符来确定
值对象:只有属性而没有概念上的身份,并且在整个生命周期中不能被改变
服务: 领域服务是跨聚合所需要用的领域服务层,此层是无服务状态
聚合:一组耦合相关联的功能,其中具有聚合根,可确保数据的完整性
聚合根: 根是唯一可以从外部访问的对象
存储库:属于领域模型
工厂:创建复杂对象或创建一个涉及其他相关对象创建的聚合,注意:工厂也是领域对象生命周期的一部分,因为它负责创建它们;可以利用工厂方法或者抽象工厂来创建
模块:纵向可以是分层,横向可以是不同的微服务
战略设计和原则:牵涉到很多团队
界限上下文:
持续集成:
上下文映射:
不同界限上下文之间的映射关系
不同界限上下文之间通信模式:
共享内核模式:
客户和供应商模式:
顺从者模式:
反腐朽层:可以使用具备适配器和翻译器的外观模式在内部模型内使用外部数据
独立方法:
开放主机服务:
精馏:识别核心领域(信息领域、业务领域)
领域服务实例:
领域驱动开发基于领域,不推荐首先开发UI然后开发其他层的自顶向下开发, 也不建议从数据库层开始的自底向上开发的开发而是先开发出领域层