以下旨在 理解DDD。

  1. 1.     什么是领域?

妈妈好是做母婴新零售的产品,应该属于电商平台,那么电商平台就是一个领域。

同一个领域的系统都有相同的核心业务

eg: 电商领域都有:商品浏览、购物车、下单、减库存、付款交易等核心环。

同一个领域要解决的问题 应该是类似的。

 

  1. 2.     什么领域驱动设计DDD?

DDD是一种基于模型驱动开发的软件开发思想,

强调领域模型是整个系统的核心,领域模型也是整个系统的核心价值所在。

每一个领域,都有一个对应的领域模型,领域模型能够很好的帮我们解决复杂的业务问题。

 

DDD中,我们总是以领域为边界,分析领域中的核心问题(核心关注点),然后设计对应的领域模型,再通过领域模型驱动代码实现。

而像数据库设计、持久化技术等这些都不是DDD的核心,而是外围的东西

 

  1. 3.     概念总结
  1. 领域就是问题域,有边界,领域中有很多问题;
  2. 任何一个系统要解决的那个大问题都对应一个领域;
  3. 通过建立领域模型来解决领域中的核心问题,模型驱动的思想;
  4. 领域建模的目标针对我们在领域中所关心的问题,即只针对核心关注点,而不是整个领域中的所有问题;
  5. 领域模型在设计时应考虑一定的抽象性、通用性,以及复用价值;
  6. 通过领域模型驱动代码的实现,确保代码让领域模型落地,代码最终能解决问题;
  7. 领域模型是系统的核心,是领域内的业务的直接沉淀,具有非常大的业务价值;
  8. 技术架构设计或数据存储等是在领域模型的外围,帮助领域模型进行落地;

关于其他:

 熟悉DDD,理解DDD仅仅是个基础,我们需要去 学会 领域建模,领域拆分,,领域细分等,成为该领域的专家。

参考文章:http://www.cnblogs.com/netfocus/p/5548025.html

 ************

浅析VO、DTO、DO、PO的概念、区别和用处    ,结合这篇文章,谈谈VO 、DTO的区别

自己的理解

VO(View Object): 是需要Controller 层返回给页面的,即返回到ResponseBody 中

某Controller class 中的方法:

   @RequestMapping("basic")
@NotAuth
public Object basicInfo(HttpServletRequest request,HttpServletResponse response,String k){ try { // 省略...
Map<String,Object> result = Maps.newHashMap(); result.put("register",register);
result.put("firstDate",date);
result.put("max",max);
result.put("total",total);
CommonResultVo vo = new CommonResultVo();
vo.setResult(result);
return vo;

} catch (ActsysBizException e) {
return ErrorResponse.newInstance(-1,"用户未登录");
}catch (Exception e){
logger.error("<育儿清单>获取基本信息异常"+StackTraceLogUtil.getStackTraceAsString(e));
return ErrorResponse.newInstance(-11,"系统异常");
}
}

  

DTO(Data Transfer Object):数据传输对象。DTO代表服务层需要接收的数据和返回的数据,而VO代表展示层需要显示的数据

      (1) 说白了就是Controller 如果调用的对象,即服务的对象是 视图层比如:H5,app移动端,网页,返回的都是DO对象;

      (2) 如果调用的对象是 另一个微服务组件中的某个Servicef方法,比如  活动系统服务于页面,它返回给页面的是一个DO对象,

      而活动系统组成DO对象的时候,需要调用会员系统的某些接口,那么会员系统返回给活动系统的就是DTO对象了

   

                       

关于领域驱动设计 DDD(Domain-Driven Design)的更多相关文章

  1. 领域模型驱动设计(Domain Driven Design)入门概述 -----DDD 解释

    软件开发要干什么: 反映真实世界要自动化的业务流程 解决现实问题 领域Domain Domain特指软件关注的领域 在不能充分了解业务领域的情况下是不可能做出一个好的软件 领域建模 领域模型驱动设计 ...

  2. 领域模型驱动设计(Domain Driven Design)入门概述

    软件开发要干什么: 反映真实世界要自动化的业务流程 解决现实问题 领域Domain Domain特指软件关注的领域 在不能充分了解业务领域的情况下是不可能做出一个好的软件 领域建模 领域模型驱动设计 ...

  3. 领域驱动设计(DDD)实践之路(一)

    本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/gk-Hb84Dt7JqBRVkMqM7Eg  作者:张文博 领域驱动设计(Domain Dr ...

  4. 领域驱动设计(DDD:Domain-Driven Design)

    领域驱动设计(DDD:Domain-Driven Design) Eric Evans的"Domain-Driven Design领域驱动设计"简称DDD,Evans DDD是一套 ...

  5. 领域驱动设计(DDD)

    领域驱动设计(DDD)实现之路 2004年,当Eric Evans的那本<领域驱动设计——软件核心复杂性应对之道>(后文简称<领域驱动设计>)出版时,我还在念高中,接触到领域驱 ...

  6. python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))

    昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据. StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对 ...

  7. 基于领域驱动设计(DDD)超轻量级快速开发架构(二)动态linq查询的实现方式

    -之动态查询,查询逻辑封装复用 基于领域驱动设计(DDD)超轻量级快速开发架构详细介绍请看 https://www.cnblogs.com/neozhu/p/13174234.html 需求 配合Ea ...

  8. 【DDD】领域驱动设计实践 —— Domain层实现

    本文是DDD框架实现讲解的第三篇,主要介绍了DDD的Domain层的实现,详细讲解了entity.value object.domain event.domain service的职责,以及如何识别出 ...

  9. 领域驱动设计(DDD:Domain-Driven Design) 介绍

    Eric Evans的“Domain-Driven Design领域驱动设计”简称DDD,Evans DDD是一套综合软件系统分析和设计的面向对象建模方法,本站Jdon.com是国内公开最早讨论DDD ...

随机推荐

  1. 【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

    写在前面 最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑.目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 服务器规划 IP 主机名 节点 操作 ...

  2. jsp获取当前日期

    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>  <jsp: ...

  3. MySQL(4)— 数据查询

    四.数据查询(DQL) 4-1.查询指定字段 select 完整 语法: select [distinct] 字段名1 [as] [别名],字段名2 [as] [别名] from 表1 [ left ...

  4. 【c#】Visual Studio 的下载及安装

    “工欲善其事,必先利其器” 这篇博文我们介绍一下如何正确的安装基于c#使用的vs 2017. 1.首先在官网下载Visual Studio,下载地址:https://www.visualstudio. ...

  5. 26-13 order by排序

    表中数据是集合,集合是没有顺序的.order by返回的数据是有顺序的,故此我们把order by以后返回的数据集合叫“游标”. --------------------------通过order b ...

  6. Ant标签详解--基础操作

    Ant的一些核心概念: build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml.        project:每个构建文件包含一个工程. property:属性,一 ...

  7. 一文读懂JAVA多线程

    背景渊源 摩尔定律 提到多线程好多书上都会提到摩尔定律,它是由英特尔创始人之一Gordon Moore提出来的.其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍 ...

  8. 校园网络 luogu P2812 (又是强联通)

    题目传送门!(luogu) 首先考虑问题一 不难想到,如果有一个学校作为终端机,那么跟其处于同一个强联通中的所有学校就可以不用作为终端机了. 那么,问题一也就迎刃而解了:找到所有入度为0的缩点.因为这 ...

  9. 软件攻城狮究级装B指南

    引言 装B于无形,随性而动,顺道而行,待霸业功成之时,你会发现:装B是牛B最好的的试金石. -- SuperDo 第一章.人间兵器(准备工具) <论语·魏灵公>:“工欲善其事,必先利其器. ...

  10. 前端开发SEO的理解

    所谓seo(Search Engine Optimization)即搜索引擎优化.简单说就是百度.谷歌搜索引擎的‘蜘蛛’,如下图: 搜索引擎蜘蛛是通过,连接地址来找到你的网站的,seo就是让你的网站符 ...