目录
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. postgis常用操作手册

    查询所有函数: SELECT * FROM pg_proc; 更新坐标系st_setsrid,查看坐标系:st_srid 创建空间索引: CREATE INDEX [indexname] ON [ta ...

  2. C#实现中国身份证验证问题

    C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准...   今天写的 C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 理论部分: 1 ...

  3. 裴波那契查找详解 - Python实现

    裴波那契查找(Fibonacci Search)是利用黄金分割原理实现的查找方法. 斐波那契查找的核心是: 1.当key == a[mid]时,查找成功: 2.当key < a[mid]时,新的 ...

  4. Liunx find的运用

    find命令 一.根据 -name 查找 find[搜索范围][搜索条件] find /root -name a1 若是模糊查询,则使用通配符 *匹配任意字符{find /root -name &qu ...

  5. Python第一天自学,变量,基本数据类型

    PyCharm 一些简单常用设置操作设置模板 File->Settings->Editor->File and Code Templates //切换python版本File-> ...

  6. springboot-mybatis 批量insert

    springboot mybatis 批量insert 操作 直接上代码: 1.首先要在pom.xml中导入包: 略...... 2.springboot mybatis配置: package com ...

  7. linux文件、目录

    user用户 group用户组 others其他人用户信息保存在/etc/passwd [root@iZ25het8xn8Z ~]# ls -altotal 56dr-xr-x---. 3 root ...

  8. openstack pike 创建vxlan网络

    #openstack pike 创建vxlan网络 openstack pike 集群高可用  安装部署 汇总 http://www.cnblogs.com/elvi/p/7613861.html # ...

  9. Django学习(1)一首情诗

    Django是Python中Web开发的最有代表性的框架之一.本文将简单介绍如何入门Django开发. 首先确保你的linux系统已安装django模块.打开Python3,利用以下命令可找到djan ...

  10. 第七届C/C++B-方格填数 DFS

    方格填数 如下的10个格子    +--+--+--+    |  |  |  | +--+--+--+--+ |  |  |  |  | +--+--+--+--+ |  |  |  | +--+- ...