如果说当下最热门的技术概念或架构思想,那么领域驱动设计(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

关注我获得

更多精彩

大话领域驱动设计——简介相关推荐

  1. DDD领域驱动设计简介

    1.起源及阶段 2003年由Eric Evans完成了<Domain-Driver Design Tacking Complexity in the Heart of Software>一 ...

  2. 如何使用ABP框架(2)三层架构与领域驱动设计的对比

    本文来自长沙.NET技术社区,原创:邹溪源.全文共有8500字,读完需耗时10分钟. 题图来自@pixabay 简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项 ...

  3. c/s三层结构信息系统的三个层次_如何使用ABP框架(2)三层架构与领域驱动设计的对比...

    本文来自长沙.NET技术社区,原创:邹溪源.全文共有8500字,读完需耗时10分钟. 题图来自@pixabay 简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项 ...

  4. 如何使用ABP进行软件开发(2) 领域驱动设计和三层架构的对比

    简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项目中涉及到的知识点,例如DTO,应用服务层,整洁架构,领域对象(如实体,聚合,值对象)等. 笔者也曾经提到,AB ...

  5. DDD - 一文读懂DDD领域驱动设计

    一文读懂DDD领域驱动设计 1. 领域驱动设计简介 1.1 什么是领域驱动设计 1.2 为什么要用领域驱动设计 优点 缺点 2.3 领域驱动设计过程 2. 对于DDD,我们需要学习什么? 2.1 DD ...

  6. horizon client 无法识别域_「领域驱动设计DDD」事件风暴简介:实现域驱动设计的简便方法...

    事件风暴是一种快速,轻量级且未得到充分认可的群体建模技术,它对于加速开发团队而言非常强大,有趣且有用.作为Alberto Brandolini的心血结晶,它是Gamestorming和领域驱动设计(D ...

  7. 领域驱动设计,为何死灰复燃?

    作者简介 张逸,曾先后就职于中兴通讯.惠普 GDCC.中软国际.ThoughtWorks 等大型中外企业,任职角色为高级软件工程师.架构师.技术总监.首席咨询师. 一.领域驱动设计为何又死灰复燃焕发青 ...

  8. 领域驱动设计系列文章汇总

    Entity Framework之领域驱动设计实践 EntityFramework之领域驱动设计实践 - 前言 EntityFramework之领域驱动设计实践 (一):从DataTable到Enti ...

  9. 领域驱动设计在互联网业务开发中的实践

    前言 至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD).在互联网开 ...

最新文章

  1. EST | 系统评价污水样品中选定药物、非法药物及其代谢物的稳定性
  2. java多线程解读一(基础篇)
  3. 推荐系统笔记(关键模块)
  4. 访问Access数据库需要注意的问题
  5. js 中的console.log有什么作用
  6. 诗与远方:无题(八十二)- 遇到你真好
  7. 小技巧之nvidia-smi
  8. 3-6 字符和字符串处理
  9. Spark2.2出现异常:ERROR SparkUI: Failed to bind SparkUI
  10. Linux du命令和df命令
  11. 51.php-fpm的pool 慢日志 open_basedir 进程管理
  12. 代码赏析:子窗口对于键盘和鼠标的响应
  13. #软件设计模式#桥接模式#小黑的学习笔记
  14. DexExpress的mapcontrol根据经纬度在地图上打点 C#地图画点 地图标点
  15. UiPath:Windows计划任务调度UiPath(直接调用及.bat方式)
  16. 计算机服务器排名,2019服务器CPU天梯图 多路CPU性能排名
  17. 《那些年啊,那些事——一个程序员的奋斗史》十
  18. 在Flex Chart 中绘制3D图表
  19. Waves效果器离线安装包-Waves v9.92 WiN-MAC
  20. teradata笔记-strtok_split_to_table

热门文章

  1. adb devices 里面有很多 emulator-XXXX的解决方法
  2. 文件系统一些概念【更新完毕】
  3. spring 加载java类_在Spring中基于Java类进行配置的完整步骤
  4. request获取mac地址_【Go】获取用户真实的ip地址
  5. opencv-原图基础上添加指定颜色
  6. 前端工程师面试题汇总
  7. 《Java多线程编程核心技术》读后感(十五)
  8. 自动调试自动编译五分钟上手
  9. 《Python编程快速上手 让繁琐工作自动化》pdf
  10. mac编辑器coda使用小贴条