领域驱动设计是Eric Evans 于2003年提出来的,提出来主要是用来解决软件架构设计的一种思想。我们都知道,

软件复杂度的成因一般包括技术复杂度和业务复杂度,那么,怎样将一些公用的方法或者业务隔离出来,减少代码的冗余度,都成为

软件架构必须解决的问题。换句话说,领域驱动设计方法解决的就是从业务模型到设计模型的演化,使用领域驱动设计方法先从业务模型演化出设计模型,

再将反应了业务领域的设计模型转化为实际的代码。

一般来说,领域驱动设计包括三要素:专业知识、抽象能力、细分问题

专业知识:就是前期在与客户沟通需求过程中,学习到的关于业务方面的知识。这类知识并不仅仅只是对需求的理解,更多的要思考业务需求实际要解决的是什么问题。

抽象能力:一般指发现核心业务对象,简化问题空间的能力。将复杂的需求抽象出要解决的实际问题,比如系统录单,可以理解为信息入库,没必要一开始就搞清楚是用手机录还是电脑录。

细分问题:把业务问题细化为更小更容易处理的子问题。从业务角度上看,一个业务领域可以划分为多个子领域,那么对应的业务问题也可划分为更多小问题。

其中抽象和划分领域决定了系统设计的下限;专业知识,决定了系统设计的上限。

什么是领域驱动设计?相关推荐

  1. DDD领域驱动设计之聚合、实体、值对象

    关于具体需求,请看前面的博文:DDD领域驱动设计实践篇之如何提取模型,下面是具体的实体.聚合.值对象的代码,不想多说什么是实体.聚合等概念,相信理论的东西大家已经知晓了.本人对DDD表示好奇,没有在真 ...

  2. 领域驱动设计_软件核心复杂性应对之道

    领域驱动设计_软件核心复杂性应对之道 转载于:https://www.cnblogs.com/MarvinGeng/archive/2013/02/21/2920968.html

  3. 领域驱动设计 敏捷_反馈失败:发现敏捷数据驱动的致命弱点的风险

    领域驱动设计 敏捷 by Phil Seaton 菲尔·西顿(Phil Seaton) 反馈失败:发现敏捷数据驱动的致命弱点的风险 (Feedback fail: discover the risk ...

  4. 领域驱动设计(DDD)架构演进和DDD的几种典型架构介绍(图文详解)

    我们生活中都听说了DDD,也了解了DDD,那么怎么将一个新项目从头开始按照DDD的过程进行划分与架构设计呢? 一.专业术语 各种服务 IAAS:基础设施服务,Infrastructure-as-a-s ...

  5. DDD领域驱动设计 — 贫血模型与充血模型

    文章转载来源:https://juejin.cn/post/6917125801460629518 | 前言  要想深入掌握和了解 DDD 领域驱动设计的核心,那无论如何也绕不开两大较为抽象的概念-- ...

  6. 一文理解 DDD 领域驱动设计!

    来源丨SpringForAll社区 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Softwa ...

  7. DDD 领域驱动设计:贫血模型、充血模型的深入解读!

    作者:JavaEdge在掘金 链接:https://juejin.cn/post/6917125801460629518 -     前言     - 要想深入掌握和了解 DDD 领域驱动设计的核心, ...

  8. 一文揭秘领域驱动设计(DDD):领域和子域!

    来源:掘金 链接:https://juejin.cn/post/6898450822771539981 -     前言     - 众所周知,领域驱动设计(DDD)是个相当抽象的概念,国内除了几家知 ...

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

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

  10. 领域驱动设计门槛很高,没有深厚的面向对象编码能力很难实践成功

    时间是人类最宝贵的资源.时间是有限的.不可再生的,你可以用钱买任何东西,却买不了时间.技术,就像时尚,在以光速在变化着.为了赶上它,我们需要跑的非常快.但是这个跑道上没有终点,所以没有赢家. 将你的黄 ...

最新文章

  1. C++ 类的内存分布
  2. 某产品经理炫耀:3年跳槽3次,月薪从8k涨到38k,跳槽涨薪最快!
  3. 图之典—可视化图表的词典
  4. 撩课-Java面试宝典-第八篇
  5. 日积月累:ProguardGui进行jar包代码混淆
  6. 【常用】linux 命令是什么的缩写(命令缩写)?vi快捷键,linux操作,c语言缩写,计算机相关,其他缩写,xshell操作,apt-get命令大全
  7. CSS——基础选择器
  8. 用hundred造句子_2020朋友圈感恩节祝福语大全:微信感恩节鞠躬的图片文案句子说说[多图]...
  9. 基线是什么意思_CAD都玩不溜,还好意思说自己搞工程的?
  10. vs2013创建c++控制台应用程序
  11. linux查看u盘的分区,在Linux下访问windows分区以及U盘
  12. 项目管理中如何应对用户频繁的需求变更?
  13. python爬取有道翻译的代码_有道翻译的爬取
  14. 解决Not all parameters were used in the SQL statement问题
  15. pycharm:Updating Indices 解决办法
  16. 深入line-height,中线,基线,底线,顶线
  17. rtmp断线重连_rtsp转rtmp rtsp2rtmp 同时16路视频 rtmp推流器 支持ipc dvr nvr
  18. ZYNQ之AXI简介
  19. Vue:如何制作表格数据分页查询
  20. echarts——map

热门文章

  1. 用python求一元二次方程的解
  2. HTML_给文本加下划线
  3. 安卓 linux服务器文件夹,Android系统下根目录下文件
  4. 还原android系统文件夹,如何从Android的内存中恢复文件-万兴恢复专家
  5. Windows Movie Maker视频制作
  6. 2013年10月17日浙大ZJG听百度CEO李彦宏讲座
  7. tensorflow models zoo简介
  8. HTML5系列代码:一个完整简单的页面
  9. h264基本编码参数
  10. 微信小程序仿猫眼电影在线选座实现