领域驱动设计(Domain Driven Design,DDD)
一、领域驱动设计的作用与意义
1、产生原因:
软件实质是对真实世界的模拟,人认识世界总是简单到复杂,软件需求就是发现世界,软件变更则变成必然,业务逻辑则由初期的简单变成复杂。而DDD就是为了应对日益复杂的业务逻辑导致开发困难、软件代码难以维护的问题而提出的软件开发思想。
2、领域建模思想
现实世界有什么事物=》就有什么对象;
现实世界有什么行为=》就有什么方法;
现实世界是什么关系=》就有什么关联;
3、作用
理论:DDD把我们对软件设计的关注点从技术重新拉回到业务,从而专注于业务领域模型的构建,而不是一上来就说的需要多少台虚拟机服务器。
实践:事件风暴(Event Storming)等具体的实施方法提供了一种结构化/半结构化的协作式可操作的方法,使得我们的软件架构设计过程可以有章可循,结束了之前随意而为之的状况。对于软件工程来说,这确实是一种巨大的进步。因为对于工程学科来说,结构化应该是迈向成熟的第一步。
二、基本概念和指导原则
1、数据模型:
贫血模型:
充血模型:
2、服务:
3、领域事件(event)
4、领域对象
实体:
值对象:
5、核心概念
领域:
限界上下文:
聚合:
三、支持领域驱动设计的主要4种技术架构设计及arthur架构
四、怎样正确地进行业务领域建模
五、案例
六、推荐书单
<<领域驱动设计-软件核心复杂性应对之道>>
<<分析模式可复用的对象模型>>
<<架构整洁之道>>
<<企业应用架构模式>>
<<领域特定语言>>
领域驱动设计(Domain Driven Design,DDD)相关推荐
- 【笔记】DDD领域驱动设计精粹——浅谈DDD
前言:` 前不久,在工作中使用DDD(领域驱动设计)完成对系统架构和功能的重构,前期参考了很多DDD文章讨论了战略设计划分好模型和领域,然后使用战术设计落实整个项目的重构,重构期间学到了很多DDD的思 ...
- 领域驱动设计学习之路—DDD的原则与实践
本文是我学习Scott Millett & Nick Tune编著的<领域驱动设计模式.原理与实践>一书的学习笔记,一共会分为4个部分如下,此文为第1部分: 领域驱动设计的原则与实 ...
- DDD领域驱动设计-为什么要用DDD
如果你有以下的疑问,那你可以试试领域驱动设计. 当朋友和你聊项目时,你能否一语中的,说清你在开发中的业务内容及其价值? 当产品和你聊需求时,是否遇到过反复沟通之后才发现讲的不是同个东西的情况? 当你在 ...
- 读张逸的领域驱动设计笔记
2019独角兽企业重金招聘Python工程师标准>>> 张逸的<领域驱动战略设计实战>地址,付费的,价格¥59,还能接受. 领域驱动设计可能会给你带来的收获,下面几点来自 ...
- 实施领域驱动设计(Implementing Domain Driven Design翻译)
实施领域驱动设计(Implementing Domain Driven Design翻译) 引言 介绍 这是实现领域驱动的实用指南设计(DDD).虽然实现细节依赖于ABP 框架基础设施,但是核心概念. ...
- 领域驱动设计的实践 – CQRS Event Sourcing
1.前言 领域驱动(Domain – Driven Design)设计的理念在于建立一系列既符合软件所处领域本身又适合软件分析开发需要的领域模型.命令查询与职责分离(Command Query Res ...
- 【华为云技术分享】如何设计高质量软件-领域驱动设计DDD(Domain-Driven Design)学习心得
DDD做为软件设计方法于2004年提出,一直不温不火,最近几年突然火起来了,为啥呢?正所谓机会给有准备的人,因为微服务的流行,大家都跃跃欲试把传统单体软件转成微服务架构,但理论很丰满,现实很骨感,光是 ...
- 领域驱动设计(英语:Domain-driven design,缩写 DDD)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.DDD是什么? 二.术语介绍 1.DDD中的模型 2.DDD模型的生命周期 3.DDD模型的边界 4.DDD设计的 ...
- [转]浅析DDD(领域驱动设计)
最近在做一些微服务相关的设计,内容包括服务的划分,Restful API的设计等.其中比较棘手的就是Service的职责划分:如何抽象具有统一业务范畴的Model,使其模块化,又如何高度提炼并组合多模 ...
- 浅析DDD(领域驱动设计)
最近在做一些微服务相关的设计,内容包括服务的划分,Restful API的设计等.其中比较棘手的就是Service的职责划分:如何抽象具有统一业务范畴的Model,使其模块化,又如何高度提炼并组合多模 ...
最新文章
- 图像处理之添加高斯与泊松噪声
- MEET大会报名开启 | 李开复张亚勤等产学研大咖邀你共同见证智能未来
- 手把手带你用Python完成一个数据分析项目,能写进简历那种!(另送15个实战案例)...
- python自动给头像添加圣诞帽
- vue 实现文本的拖拽_基于Vue实现拖拽功能
- MySQL存储过程的异常处理
- 想要导航首页提示页_如何设计电商首页运营后台
- 正充电手机自动订了总统套房!公安介入调查:排除被植入后门或被控制可能...
- 艾默生变频器报警PHP,艾默生变频器故障代码
- Maven 使用本地Tomcat9 一键启动和热部署
- 推荐电影 梦工厂经典电影列表 1996-2012
- 模拟双色球系统判断中奖情况
- Pulp Fiction (低俗小说)
- 用脑子说话,用心服务
- 老人上网_一些老人的国家
- drv8833 pwm 使用和坑
- umap算法_科学网—[转载]【源码】均匀流形近似与投影(UMAP)算法仿真 - 刘春静的博文...
- vue项目中使用a标签下载视频文件
- DB,DBMS,DBS之间的关系
- 2021年中国固定资产投资现状分析:全国固定资产投资(不含农户)54.45万亿元[图]