目录
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. Python 解LeetCode:Intersection of Two Arrays

    最近,在用解决LeetCode问题的时候,做了349: Intersection of Two Arrays这个问题,就是求两个列表的交集.我这种弱鸡,第一种想法是把问题解决,而不是分析复杂度,于是写 ...

  2. jquery实现抽奖小游戏

    在很多网站或游戏活动中我们都会看到有关抽奖的活动或界面: 下面我将给大家介绍下如何通过javascript来实现这样的一个抽奖功能,主要从下面三个步骤入手(文中着重介绍第三部分有关功能的实现): 1. ...

  3. Python的classmethod和staticmethod区别

    静态方法(staticmethod) 类方法(classmethod) 静态方法和类方法都可以通过类名.方法名或者实例.方法访问. #-*- coding:utf8 -*- class A(objec ...

  4. 关于vue 框架与后台框架的混合使用的尝试

    这几天我在研究前台框架和后台框架融合的问题,进行了一些尝试; 我前台选择的是 vue,当然也可以选择 react 等其他 mvvm 框架,不过 vue 对于我来说是最熟悉的; 后台话,我选择的是 ph ...

  5. Python3 下实现 Tencent AI 调用

    1.背景 a.鹅厂近期发布了自己的AI api,包括身份证ocr.名片ocr.文本分析等一堆API,因为前期项目用到图形OCR,遂实现试用了一下,发现准确率还不错,放出来给大家共享一下. b.基于py ...

  6. TFboy养成记 MNIST Classification (主要是如何计算accuracy)

    参考:莫烦. 主要是运用的MLP.另外这里用到的是批训练: 这个代码很简单,跟上次的基本没有什么区别. 这里的lossfunction用到的是是交叉熵cross_entropy.可能网上很多形式跟这里 ...

  7. iis7 部署网站 403错误

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 403 - 禁止访问: 访问被拒绝. 您无权使用所提供的凭据查看此 ...

  8. 十、Hadoop学习笔记————Hive与Hbase以及RDBMS(关系型数据库)的关系

    Hive目的是为了简化MapReduce编程 实际应用中,Hive与Hbase不经常链接

  9. vue.js的学习中的简单案例

    今天学习了近年来挺火的一门JS技术,叫vue.js下面是它的一个简单案例: <html> <head> <title>$Title$</title> / ...

  10. deepin 常用设置

    1 不开特效和动画,开启透明无黑边 #!/bin/bash #开启 metacity 窗管合成,取代正在运行的窗管 deepin-metacity --composite --replace #关闭 ...