大话领域驱动设计——简介
如果说当下最热门的技术概念或架构思想,那么领域驱动设计(DDD)一定占有一席之地。
上个系列,我讲了ABP vNext框架在微服务架构下的落地思路,而ABP vNext是基于DDD思想的完整框架之一,同时DDD也是微服务架构服务拆分的主流依据。无论想学好ABP还是微服务架构,首先要理解DDD。这一系列,我就从各个概念,结合在ABP vNext中的用法详细讲解DDD。
DDD是Domain Driven Design的缩写,中文翻译为领域驱动设计。首先要明确一点,DDD是一套方法论,主要面向软件设计的方法论。学习它首先要把它从具体的实现抽离出来,也要从微服务架构的概念里抽离出来,它们是相互独立的概念。而ABP框架是DDD思想的基础落地方案之一。所以是先学思想,再学落地。
DDD的核心是领域。领域又称为问题域,是对系统业务的抽象,意在将我们的重点放在需要解决的问题本身,而不是如何实现。DDD希望为业务专家(领域专家)和研发人员(技术专家)提供一套完整高效的沟通方式,并在此基础上由他们共同建立可快速落地的系统模型(领域模型)。在此工程中,业务专家不需要去关注技术实现,技术人员应该优先把精力放在理解业务本身而不是实现的细节。
DDD的核心产出结果是领域模型,在过去无论是传统软件工程方法或是基于UML的面向对象建模,软件设计过程都会产出多个不同维度的设计图,例如类图、顺序图、流程图……。但是这样存在一个问题,因为需求不断变更,每次变化我们都要花大量时间修改多个设计图。尤其对于进度比较急项目,经常会出现代码不断修改但是设计图没有足够的时间去维护。慢慢会导致设计图和实际代码不一致甚至区别很大,那么设计图将失去意义。而在DDD的思想中,所有的领域设计,都会绘制在一个图也就是领域模型图中,相当于将过去的多个图合成一个。那么我们改代码的同时,就很容易同步去修正领域模型。
后面的章节,我将从以下几个方面来深入介绍领域驱动设计:
1. 战略设计和战术设计
2. 分层架构
3. 各项概念(实体、聚合、服务、DTO等)
4. 实现方法
END
关注我获得
更多精彩
大话领域驱动设计——简介相关推荐
- DDD领域驱动设计简介
1.起源及阶段 2003年由Eric Evans完成了<Domain-Driver Design Tacking Complexity in the Heart of Software>一 ...
- 如何使用ABP框架(2)三层架构与领域驱动设计的对比
本文来自长沙.NET技术社区,原创:邹溪源.全文共有8500字,读完需耗时10分钟. 题图来自@pixabay 简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项 ...
- c/s三层结构信息系统的三个层次_如何使用ABP框架(2)三层架构与领域驱动设计的对比...
本文来自长沙.NET技术社区,原创:邹溪源.全文共有8500字,读完需耗时10分钟. 题图来自@pixabay 简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项 ...
- 如何使用ABP进行软件开发(2) 领域驱动设计和三层架构的对比
简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项目中涉及到的知识点,例如DTO,应用服务层,整洁架构,领域对象(如实体,聚合,值对象)等. 笔者也曾经提到,AB ...
- DDD - 一文读懂DDD领域驱动设计
一文读懂DDD领域驱动设计 1. 领域驱动设计简介 1.1 什么是领域驱动设计 1.2 为什么要用领域驱动设计 优点 缺点 2.3 领域驱动设计过程 2. 对于DDD,我们需要学习什么? 2.1 DD ...
- horizon client 无法识别域_「领域驱动设计DDD」事件风暴简介:实现域驱动设计的简便方法...
事件风暴是一种快速,轻量级且未得到充分认可的群体建模技术,它对于加速开发团队而言非常强大,有趣且有用.作为Alberto Brandolini的心血结晶,它是Gamestorming和领域驱动设计(D ...
- 领域驱动设计,为何死灰复燃?
作者简介 张逸,曾先后就职于中兴通讯.惠普 GDCC.中软国际.ThoughtWorks 等大型中外企业,任职角色为高级软件工程师.架构师.技术总监.首席咨询师. 一.领域驱动设计为何又死灰复燃焕发青 ...
- 领域驱动设计系列文章汇总
Entity Framework之领域驱动设计实践 EntityFramework之领域驱动设计实践 - 前言 EntityFramework之领域驱动设计实践 (一):从DataTable到Enti ...
- 领域驱动设计在互联网业务开发中的实践
前言 至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD).在互联网开 ...
最新文章
- EST | 系统评价污水样品中选定药物、非法药物及其代谢物的稳定性
- java多线程解读一(基础篇)
- 推荐系统笔记(关键模块)
- 访问Access数据库需要注意的问题
- js 中的console.log有什么作用
- 诗与远方:无题(八十二)- 遇到你真好
- 小技巧之nvidia-smi
- 3-6 字符和字符串处理
- Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI
- Linux du命令和df命令
- 51.php-fpm的pool 慢日志 open_basedir 进程管理
- 代码赏析:子窗口对于键盘和鼠标的响应
- #软件设计模式#桥接模式#小黑的学习笔记
- DexExpress的mapcontrol根据经纬度在地图上打点 C#地图画点 地图标点
- UiPath:Windows计划任务调度UiPath(直接调用及.bat方式)
- 计算机服务器排名,2019服务器CPU天梯图 多路CPU性能排名
- 《那些年啊,那些事——一个程序员的奋斗史》十
- 在Flex Chart 中绘制3D图表
- Waves效果器离线安装包-Waves v9.92 WiN-MAC
- teradata笔记-strtok_split_to_table