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,即模块,是指提供特定功能的相对独立的单元.提到模块,你肯定就会想到模块化设计思想,也就是功能的分解和组合.对于简单问题,可以直接构建单一模块 ...
随机推荐
- Container With Most Water 容器最大水容量
描述 Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai ...
- 坦言spring中事务、重试、异步执行注解
一.@Transaction 我们再编码过程中,大量使用到这个注解.一般情况下,@Transaction使用默认注解可以完成90%的功能,下面会针对一些特殊场景下,@Tansaction的使用注意 1 ...
- 史上最完整的PS快捷键(绝对经典)
快速恢复默认值 有些不擅长Photoshop的朋友为了调整出满意的效果真是几经周折,结果发现还是原来的默认效果最好,这下傻了眼,后悔不该当初呀!怎么恢复到默认值呀?试着轻轻点按选项栏上的工具图标,然后 ...
- .net core 依赖注入扩展,实现随处控制反转
在使用.net core时,依赖注入,主要使用通过构造函数注入.小编将通过扩展方式,实现在类中各个地方可以控制反转,获取实例. 1.首先自定义扩展类 using Microsoft.AspNetCor ...
- JDBC数据库编程
常识名词:ODBC ,JDBC,JDBC API ,JDBC Driver API 数据准备,续上节: JDBC编程流程 最基本的JDBC操作 本段内容主要完成JDBC的增删查改操作 packa ...
- 从编辑距离、BK树到文本纠错
搜索引擎里有一个很重要的话题,就是文本纠错,主要有两种做法,一是从词典纠错,一是分析用户搜索日志,今天我们探讨使用基于词典的方式纠错,核心思想就是基于编辑距离,使用BK树.下面我们来逐一探讨: 编辑距 ...
- #postman接口测试系列:基本操作总结
最近项目需要接口测试,所以选择了不少工具对比,最终决定使用postman进行接口测试,这个工具目前使用比较简单,但是有点还是比较多的,如下: 方便切换不同的环境进行接口测试工作,而不用修改变量或代码 ...
- Azure 基础 : 使用 Automation 定时开机
不知何时 Azure 为虚机提供了自动关机的功能.这是一个很棒的功能,可以帮助我们定时关闭虚机并释放掉资源以节省开支.如果某台虚机在夜间不需要提供服务,我们就可以把它配置为晚上的某个时间点自动关机: ...
- Web攻防之暴力破解(何足道版)
原创文章 原文首发我实验室公众号 猎户安全实验室 然后发在先知平台备份了一份 1 @序 攻防之初,大多为绕过既有逻辑和认证,以Getshell为节点,不管是SQL注入获得管理员数据还是XSS 获得后台 ...
- 最强离线安装MySQL_8.0.2方法
最强离线安装MySQL_8.0.2方法,一次就能安装成功. 按照此方式,离线安装MySQL五分钟都花不到,节省了大量的宝贵时间. 前戏,假设你已经从MySQL官网中获取了下面这个压缩包: 解压之后变成 ...