目录
DDD理论学习系列(1)-- 通用语言
DDD理论学习系列(2)-- 领域
DDD理论学习系列(3)-- 限界上下文
DDD理论学习系列(4)-- 领域模型
DDD理论学习系列(5)-- 统一建模语言
DDD理论学习系列(6)-- 实体
DDD理论学习系列(7)-- 值对象
DDD理论学习系列(8)-- 应用服务&领域服务
DDD理论学习系列(9)-- 领域事件
DDD理论学习系列(10)-- 聚合
DDD理论学习系列(11)-- 工厂
上下文映射图
战略设计与战术设计
实体
值对象
领域服务
领域事件
模块
聚合
工厂
值对象
仓储
未完待续,持续更新。

1. 序言

最近在看《实现领域驱动设计》,学习DDD的思想和理论。
都说理论要与实践相结合。所以为了更好的理解DDD的精髓,我会结合一个真实的案例,通过DDD的理论来进行剖析和实践。

2. 真实案例

有一朋友做办公用品销售维修与租赁的,规模不大,10人左右的小公司。
一天闲聊,说现在微信公众号挺火的,想做一个尝试,看能否在销售和推广上做一个新的突破。
我说好啊,反正平时有空余时间,我就慢慢帮你搞呗。

下面就是我们围绕需求的对话:

朋友:搞办公设备这一行业,价格不能太透明,不然企业死的快。
我:为什么?
朋友:你想啊,拼价格,你怎么拼得过淘宝京东。但我们在售后方面绝对比线上做的好。这也是我们这一行线下能够存活的原因。
我:也就是说,做这个微信公众号,做商品展示的话,不显示价格。那如果客户有购买倾向,但你们又不显示价格,他就没法做参考啊。
朋友:是的,你看看能否加个询价功能。
我:你的意思是,在商品展示的时候做一个询价的按钮,你们根据客户的需求数量,在线给予报价。
朋友:对的。
我:那你们平时的库存是怎么流转的?
朋友:我们也就六七十平的办公室,就没有什么仓库,只在办公室存放一些耗材和几部机器。我们是做代理的,客户有需求我们直接从厂家拿货发货。
我:我明白了,也就是相当于代销模式,然后你们主要负责维护。
朋友:可以这么理解。
我:客户询价,然后我们报价。接下来的流程也就是,客户若对报价没有异议,客户就通过报价单生成订单,支付,我们这边发货。
朋友:对,但是如果客户对报价有异议,最好能给客户讨价还价的空间,毕竟做生意不容易,让点利,多走一单也是销量嘛。
我:这样吧,我在报价单下面加一行文字说明,若对价格有异议,欢迎来电咨询吧。
朋友:这样也行。
我:既然你们的业务主要是销售和维修,有没有想过提供一个在线报修的入口?
朋友:这个点子好,你看看帮实现一下。
我:那你看看还有什么要实现的吗?
朋友:先这些吧,以后想到了,再跟你说。

3. 计划

像开篇所说,理论很重要但实践出真知。
所以计划分两步走:
第一步:使用DDD的思想对案例进行剖析。
第二步:使用.Net上比较流行的DDD开源框架ABP来实现案例。

初学DDD,请大家不吝赐教,感激不尽。

参考资料
《实现领域驱动设计》
《Patterns, Principles, and Practices of Domain-Driven Design》

DDD理论学习系列——案例及目录的更多相关文章

  1. DDD理论学习系列(5)-- 统一建模语言

    DDD理论学习系列--案例及目录 1.引言 上一节讲解了领域模型,领域模型主要是将业务中涉及到的概念以面向对象的思想进行抽象,抽象出实体对象,确定实体所对应的方法和属性,以及实体之间的关系.然后将这些 ...

  2. DDD理论学习系列(6)-- 实体

    DDD理论学习系列--案例及目录 1.引言 实体对应的英语单词为Entity.提到实体,你可能立马就想到了代码中定义的实体类.在使用一些ORM框架时,比如Entity Framework,实体作为直接 ...

  3. DDD理论学习系列(7)-- 值对象

    DDD理论学习系列--案例及目录 1.引言 提到值对象,我们可能立马就想到值类型和引用类型.而在C#中,值类型的代表是strut和enum,引用类型的代表是class.interface.delega ...

  4. DDD理论学习系列(8)-- 应用服务&领域服务

    DDD理论学习系列--案例及目录 1. 引言 单从字面理解,不管是领域服务还是应用服务,都是服务.而什么是服务?从SOA到微服务,它们所描述的服务都是一个宽泛的概念,我们可以理解为服务是行为的抽象.从 ...

  5. DDD理论学习系列(9)-- 领域事件

    DDD理论学习系列--案例及目录 1. 引言 A domain event is a full-fledged part of the domain model, a representation o ...

  6. DDD理论学习系列(10)-- 聚合

    DDD理论学习系列--案例及目录 1.引言 聚合,最初是UML类图中的概念,表示一种强的关联关系,是一种整体与部分的关系,且部分能够离开整体而独立存在,如车和轮胎. 在DDD中,聚合也可以用来表示整体 ...

  7. DDD理论学习系列(11)-- 工厂

    DDD理论学习系列--案例及目录 1.引言 在针对大型的复杂领域进行建模时,聚合.实体和值对象之间的依赖关系可能会变得十分复杂.在某个对象中为了确保其依赖对象的有效实例被创建,需要深入了解对象实例化逻 ...

  8. DDD理论学习系列(12)-- 仓储

    DDD理论学习系列--案例及目录 1. 引言 DDD中Repository这个单词,主要有两种翻译:资源库和仓储,本文取仓储之译. 说到仓储,我们肯定就想到了仓库,仓库一般用来存放货物,而仓库一般由仓 ...

  9. DDD理论学习系列(13)-- 模块

    DDD理论学习系列--案例及目录 1. 引言 Module,即模块,是指提供特定功能的相对独立的单元.提到模块,你肯定就会想到模块化设计思想,也就是功能的分解和组合.对于简单问题,可以直接构建单一模块 ...

随机推荐

  1. HTTPCLIENT 模拟登陆

    第一步构建忽略https验证的httpclient public static CloseableHttpClient getHttpClient() throws Exception { SSLCo ...

  2. (二)SVN的安装

    1,首先下载SVN的服务端和客户端地址如下http://subversion.apache.org/packages.html.进入网址后滚动到浏览器最底部. (因为我的系统是Windows所以我选择 ...

  3. Django 入门案例开发(中)

    昨天已经描述了如何搭建Django的开发环境,今天描述业务流程,具体我们要实现一个什么样的业务: 以下的业务都是假设的(网上书店   页面做的low): 1.用户注册及登录业务: 这是一个网上书店阅读 ...

  4. mybatis中sql语句的批量插入

    <!-- 收件箱插入收件信息 -->    <insert id="insertReceiveemail">           <!-- 生成一条U ...

  5. Kaggle Challenge简要介绍

    https://en.wikipedia.org/wiki/Kaggle 以下内容,直接摘自维基百科,主要起到一个记录的作用,提醒自己有时间关注关注这个竞赛. Kaggle is a platform ...

  6. ASP.NET Core教程【二】从保存数据看特有属性与服务端验证

    前文索引: 在layout.cshtml文件中,我们可以看到如下代码: <a asp-page="/Index" class="navbar-brand" ...

  7. 模板文件引入css样式文件

    引用路径问题:相对路径和绝对路径 相对路径:相对路口文件index.php设置 绝对路径:从虚拟主机站点目录开始设置 css样式文件引入图片,路径的设置 相对地址:相对css文件本身设置 ①模板文件 ...

  8. CentOS7 64位 安装MySQL5.7

    安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...

  9. 将后面的m个数移到前面

    #include<iostream> #include<algorithm> #include<stdio.h> #include<numeric> u ...

  10. 整理下git常用命令

    Git工作示意图 一.新建代码库 ::在当前目录新建一个Git代码库git init::新建一个目录,将其初始化为Git代码库git init [project-name]::下载一个项目和它的整个代 ...