认知DDD
# DDD来源介绍
领域建模和设计的重要性在很早之前就被一些软件开发人员所发现 ,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD);近些年来这种自顶而下的设计方式越发被推崇。
本文以代码为引,从小处入手;同大家一起学习DDD。
# DDD架构的核心
提倡以业务为核心,解耦外部依赖,分离业务复杂度和技术复杂度。
# DDD适用场景
DDD虽好,但不要贪杯。在实践DDD时,有两个点需要明确。
1、领域模型对设计能力要求很高,没把握用好,一个错误的抽象还不如不抽象,宁可不要用,也不要滥用,不要为了DDD而DDD。
理解:DDD的学习和使用是有代价的,一个零DDD基础的团队,不要期望在一个项目中完美的使用DDD;应该是一步一步的引入DDD的思想。
2、只有复杂的系统才需要系统DDD。
理解:DDD是为了治理业务而生的。
这里的复杂分为三个层次:
业务间有复杂的联动关系。
系统需要持续维护,业务不断演化
需要隔离技术复杂度的场景。
ddd的便捷,是基于业务抽象被不断复用的。如果业务抽象没有复用的必要,也没有系统引入ddd的必要。
只需要使用一次的工具,不需要系统引入ddd。
# 阅读前提
了解面向对象
# 目录
# 第一部分:
文章:
目标:
1、简单了解DDD的知识范围。
# 第二部分:
文章:
2、实体、领域服务、应用服务 (opens new window)
3、基于Cola的初步实践 (opens new window)
目标:
1、对不了解DDD的同学,引导认知DDD。
2、对在设计时DDD的同学,了解如何在编码中如何DDD。
# 引用
《领域驱动设计:软件核心复杂性应对之道》 作者: Eric Evans
《实现领域驱动设计》 作者:Vaughn Vernon(沃恩.弗农)
部分网络文章
编辑 (opens new window)
上次更新: 2023/03/17, 15:46:47