DDD(Domain-Driven Design)领域驱动设计-(一)整体概述

前言

最近公司通过8节课组织了DDD培训,在此以系列文章作为总结,本篇文章主要介绍DDD整体概述

什么是DDD?(领域驱动设计)

传统架构方式

如果对于传统的web开发比较熟悉的同学一定会了解传统的三层架构,既controller层,service层,dao层,
传统的软件架构能够解决业务中的实际问题,但是对于复杂多变的业务场景,很多时候会发现,业务是一团乱麻,在现有系统中扩展功能会难以扩展,或者业务的扩展导致其他业务的不可用

DDD的定义

DDD经过这些年的发展,已经成为了一个业务与技术结合,架构适应业务变化的良好的实现,下边具体介绍ddd的理论及落地方法
定义:领域驱动设计是一种处理高度复杂领域的设计思想,试图痛殴过分离技术实现的复杂性,围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演化的问题.
团队应用可以成功的开发复杂的业务软件系统,使系统增大时仍然保持敏捷

DDD的三阶段

战略设计->战术设计->技术实现

  • 战略设计:对于业务进行整体的梳理
  • 战术设计:如何将业务与技术组织结合起来
  • 技术实现:具体的技术方案,解决实际的业务问题

当我们获取到具体的业务需求时,需要对业务进行梳理,建立模型,获取业务中涉及到的

建模

软件开发本质上是将现实世界抽象到模型,建模的过程,模型解决了现实世界中的问题
建模的特点

  • 解决特定问题
  • 对现实世界模拟
  • 抽取一部分属性,忽略一部分属性
  • 多角度,多方法
  • 人造物
建模的过程

现实世界->行为模型->领域模型->实现模型->代码执行
行为模型包括: 用户故事, 事件风暴, 用例
领域模型包括:领域建模
实现模型包括:分层架构,代码,数据库
后续的文章会详细的介绍具体的内容

各个阶段的协作图

在这里插入图片描述

  • PO:project owner 项目拥有者
  • PM:project manager 项目管理者
  • BA:business analyst 商业分析师
  • TL:Tech Lead 技术领导
  • dev:developer 开发者
  • QA:Quality Assurance 质量保证
    每种角色在项目中复杂不同时期的工作,每种角色之间也会有交叉的地方,没有绝对的界限,最终大家协作完成项目

总结

  • DDD是一种处理高度复杂领域的设计思想
  • DDD解决了软件难以理解,难以维护的问题
  • DDD采用分段式协作
  • DDD采用统一建模语言,将业务与技术拉通
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值