DDD理论学习系列——案例及目录
目录
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理论学习系列——案例及目录的更多相关文章
- DDD理论学习系列(5)-- 统一建模语言
DDD理论学习系列--案例及目录 1.引言 上一节讲解了领域模型,领域模型主要是将业务中涉及到的概念以面向对象的思想进行抽象,抽象出实体对象,确定实体所对应的方法和属性,以及实体之间的关系.然后将这些 ...
- DDD理论学习系列(6)-- 实体
DDD理论学习系列--案例及目录 1.引言 实体对应的英语单词为Entity.提到实体,你可能立马就想到了代码中定义的实体类.在使用一些ORM框架时,比如Entity Framework,实体作为直接 ...
- DDD理论学习系列(7)-- 值对象
DDD理论学习系列--案例及目录 1.引言 提到值对象,我们可能立马就想到值类型和引用类型.而在C#中,值类型的代表是strut和enum,引用类型的代表是class.interface.delega ...
- DDD理论学习系列(8)-- 应用服务&领域服务
DDD理论学习系列--案例及目录 1. 引言 单从字面理解,不管是领域服务还是应用服务,都是服务.而什么是服务?从SOA到微服务,它们所描述的服务都是一个宽泛的概念,我们可以理解为服务是行为的抽象.从 ...
- DDD理论学习系列(9)-- 领域事件
DDD理论学习系列--案例及目录 1. 引言 A domain event is a full-fledged part of the domain model, a representation o ...
- DDD理论学习系列(10)-- 聚合
DDD理论学习系列--案例及目录 1.引言 聚合,最初是UML类图中的概念,表示一种强的关联关系,是一种整体与部分的关系,且部分能够离开整体而独立存在,如车和轮胎. 在DDD中,聚合也可以用来表示整体 ...
- DDD理论学习系列(11)-- 工厂
DDD理论学习系列--案例及目录 1.引言 在针对大型的复杂领域进行建模时,聚合.实体和值对象之间的依赖关系可能会变得十分复杂.在某个对象中为了确保其依赖对象的有效实例被创建,需要深入了解对象实例化逻 ...
- DDD理论学习系列(12)-- 仓储
DDD理论学习系列--案例及目录 1. 引言 DDD中Repository这个单词,主要有两种翻译:资源库和仓储,本文取仓储之译. 说到仓储,我们肯定就想到了仓库,仓库一般用来存放货物,而仓库一般由仓 ...
- DDD理论学习系列(13)-- 模块
DDD理论学习系列--案例及目录 1. 引言 Module,即模块,是指提供特定功能的相对独立的单元.提到模块,你肯定就会想到模块化设计思想,也就是功能的分解和组合.对于简单问题,可以直接构建单一模块 ...
随机推荐
- React 和 Angular 各有什么优缺点,各自又适合什么开发场景?
最近正在学习React,便谈一点自己的浅见. Angular.js首先Angular的背后是Google,所以社区基础是不用担心的,整个生态也已经是非常的完整了,从最基本的Tutorial到Stack ...
- IE6中 PNG 背景透明的最佳解决方案
为什么要使用 PNG 图片? 简 单来说,使用 PNG 格式比起 GIF 来表现色彩更丰富,特别是表现渐变以及背景透明的渐变要比GIF格式出色很多.目前,最新的浏览器基本上都支持PNG格式.唯独有万恶 ...
- Maven的pom.xml文件详解------Build Settings
根据POM 4.0.0 XSD,build元素概念性的划分为两个部分:BaseBuild(包含poject build和profile build的公共部分,见下)和poject buil < ...
- 掌握numpy(四)
数组的累加(拼接) 在前面讲了使用切片方法能够对数组进行切分,使用copy对切片的数组进行复制,那么数组该如何拼接呢? a1 = np.full((2,3),1)#填充数组 a2 = np.full( ...
- MySQL原理相关
1.索引 http://blog.codinglabs.org/articles/theory-of-mysql-index.html
- StackExchange.Redis学习笔记(三) 数据库及密码配置 GetServer函数
这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数 数据库连接 下面是我的连接字符串,里面指定了地址,密码,及默认的数据库 Redis启动后默认会分成0-15个数据库,不 ...
- Android隐藏软键盘
1,用java代码隐藏: /**隐藏软键盘**/ View view = getWindow().peekDecorView(); if (view != null) { ...
- 类的特殊成员&反射&异常处理
类的特殊成员 1.__doc__表示类的描述信息 class Foo(object): """ 描述类信息,这是用于看片的神奇 """ de ...
- 件测试博客日记Day03-11.17日 —— 赵天宇 —— 禅道的使用和配置详细版
说在维基百科先查找关于禅道相关知识,发现有关于禅道这个项目管理软件的详细介绍,然后将相关的介绍进行整理写入文档,在禅道的介绍中也有下载地址并进行安装. (1)软件的基本情况 a.中文名称:禅道项目管理 ...
- React+Redux实现追书神器网页版
引言 由于现在做的react-native项目没有使用到redux等框架,写了一段时间想深入学习react,有个想法想做个demo练手下,那时候其实还没想好要做哪一个类型的,也看了些动漫的,小说阅读, ...