领域驱动设计业务框架DMVP
DMVP,全称DDD-MVP,是基于领域驱动设计(DDD)搭建的业务框架,整体设计符合DDD领域模型的规范,业务上达成了领域模型和代码的一一映射,技术上达成了高内聚低耦合的架构设计,开发人员不需要关注DDD框架设计,只需专心写业务逻辑即可,节约了人力成本。
DMVP框架特点:
1:通过页面简单配置,即可生成规范的DDD战术框架,只需在框架内实现业务逻辑即可。
2:代码和领域模型的统一对应,制定了领域模型和代码的对应规范,做到代码即领域模型,即业务。
3:框架由多年实战经验总结而成,实战过大型互联网分布式项目,期间框架历经多次改版。
4:框架设计思想和套路属于DDD实战先驱前列。
DMVP框架架构设计:
DMVP框架使用:
目前使用比较简单,准备好业务的领域模型,在页面上进行录入,点击生成代码,即可生成标准DDD Maven工程,本地导入即可开发,使用步骤:
1:登陆框架首页,进行领域模型的录入。
2:点击生成代码按钮,后台生成代码框架后,浏览器自动下载,导入 idea,开始业务编码。
示例部分截图如下:
代码生成完成之后截图如下:
如何获得DMVP框架,扫描下方二维码即可获得,是收费的,付费之后你将获得4大特权:
1:整套框架的使用权限(非商用),视频直播讲解DMVP,知识星球有问必答(晚上或周末集中作答,好的提问会有代码演示)。
2:多年DDD战略战术套路总结,每周一篇,约40篇左右。
3:目前DMVP只是1.0版本,计划6月15号发布2.0,7月底发布3.0,每次版本都是不一样的产品使用姿势和体验,市面上绝没有第二款!
4:星球每增加20人,开一次直播,每次直播除了介绍框架,每次都会新出主题。
购买内三天内都可以退款的,你可以先买着试试看我们的框架,如果觉得和自己八字不合,欢迎退款,但请不要外泄,谢谢。
目前的DMVP还有很多优化正在进行中,针对每次完善我都会发起投票,听取大家的建议,让我们一起搭建DDD领域的最牛实战框架!
扫描二维码即可获得:
附上40课课程章节(DMVP框架已经完成,战略设计已完成30%):
战略设计
0 领域驱动设计学习路径
1 通用语言
· 1.1 通用语言的意义:理解需求的指南针
· 1.2 通用语言的定义和表达
·1.3 快速挖掘通用语言的方法
· 1.3.1 抓住动词,扩展名词
· 1.3.2 思考问题本质的基本方法:WR原则
·1.4 快速转化为领域模型的方法
· 1.4.1 领域模型的图文表示法
· 1.4.2 对号入座法
· 1.4.2.1 实体
· 1.4.2.2 值对象
· 1.4.2.3 聚合
· 1.4.2.4 工厂
· 1.4.2.5 仓储
· 1.4.2.6 领域服务
·1.5 快速确立上下文边界的方法
· 1.5.1 上下文边界的定义和表达
· 1.5.2 领域归属-责任驱动法
· 1.5.3 领域联系-协作驱动法
战术设计
2 领域模型转化成数据模型的方法
· 2.1 通用建模方法
· 2.1.1 彩色uml建模法
· 2.1.2 uml建模法的运用
· 2.2 通用建模技巧
· 2.2.1 二级结构
· 2.2.2 type通用结构
3 代码如何体现领域模型
· 3.1 排版规范
· 3.1.1 system、module、package的业务组织方式
· 3.1.2 method,class等命名方式实体,值对象等等接口定义方式
· 3.2 领域构造规范
· 3.2.1 实体
· 3.2.1.1 实体的唯一标识,属性,行为和规约
· 3.2.1.2 实体行为的粒度和完整
· 3.2.1.3 实体的构造、存储和获取
· 3.2.2 值对象
· 3.2.2.1 构造和获取
· 3.2.2.2 值对象实例的多变化、在架构之间的传递。
· 3.2.3 领域服务
· 3.2.3.1 两种领域服务的实现
· 3.3 领域生命周期规范
· 3.3.1 聚合
· 3.3.1.1 聚合的作用,如何构造和获取
· 3.3.1.2 聚合的粒度、组成范围(业务范围的控制)
· 3.3.1.3 聚合行为定义和实体行为的区别、聚合如何暴露实体的行为
· 3.3.2 工厂
· 3.3.2.1 工厂的作用
· 3.3.2.2 build+factory两种模式
· 3.3.3 仓储
· 3.3.3.1 狭义仓储
· 3.3.3.2 广义仓储
4 架构的实战应用
· 4.1 多层架构
· 4.1.1 整体5层架构
· 4.1.2 应用层
· 4.1.3 领域层
· 4.1.4 基础设施层
· 4.1.5 SPI层
· 4.1.6 Controller层
· 4.2 DDD 和 Spring 架构的结合
· 4.2.1 new 和 Spring 容器间的艰难选择
· 4.2.2 和 Spring 架构的结合
· 4.2.3 依赖倒置和 Spring 框架的结合
· 4.3 简单六边形架构
· 4.3.1 上游复杂多变
· 4.3.2 核心保持不变
· 4.3.3 下游薄防腐层的出现
· 4.4 复杂六变形架构
· 4.4.1 流程编排的出现
· 4.4.2 核心不变粒度进行了优化
· 4.4.3 SPI层的演进
· 4.5 读写分离架构
· 4.5.1. 读写分离架构的思考
· 4.5.2 读写分离架构的实现
欢迎扩散,感谢。
领域驱动设计业务框架DMVP的更多相关文章
- 【DDD】领域驱动设计实践 —— 框架实现
本文主要了在社区服务系统(ECO)中基于SpringMVC+mybatis框架对DDD的落地实现.本文为系列文章中的其中一篇,其他内容可参考:通过业务系统的重构实践DDD. 框架实现图 该框架实现基本 ...
- 【DDD】领域驱动设计实践 —— UI层实现
前面几篇blog主要介绍了DDD落地架构及业务建模战术,后续几篇blog会在此基础上,讲解具体的架构实现,通过完整代码demo的形式,更好地将DDD的落地方案呈现出来.本文是架构实现讲解的第一篇,主要 ...
- 如何使用ABP进行软件开发(2) 领域驱动设计和三层架构的对比
简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项目中涉及到的知识点,例如DTO,应用服务层,整洁架构,领域对象(如实体,聚合,值对象)等. 笔者也曾经提到,AB ...
- .NET应用架构设计—面向查询的领域驱动设计实践(调整传统三层架构,外加维护型的业务开关)
阅读目录: 1.背景介绍 2.在业务层中加入核心领域模型(引入DomainModel,让逻辑.数据有家可归,变成一个完整的业务对象) 3.统一协调层Application Layer(加入协调层来转换 ...
- 基于“事件”驱动的领域驱动设计(DDD)框架分析
摘抄自 从去年10月份开始,学了几个月的领域驱动设计(Domain Driven Design,简称DDD).主要是学习领域驱动设计之父Eric Evans的名著:<Domain-driven ...
- [转] DDD领域驱动设计框架分享
从去年10月份开始,学了几个月的领域驱动设计(Domain Driven Design,简称DDD).主要是学习领域驱动设计之父Eric Evans的名著:<Domain-driven desi ...
- 【DDD】领域驱动设计实践 —— 业务建模实例(‘发布帖子’)
本文是基于上一篇‘业务建模小招数’的实践,后面的多篇博文类似.本文主要讲解‘发表帖子’场景的业务建模,包括:业务建模.业务模型.示例代码:示例代码会使用java编写,文末附有github地址.相比于& ...
- 【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇
前言 领域驱动设计,其实已经是一个很古老的概念了,但它的复杂度依旧让学习的人头疼不已. 互联网关于领域驱动的文章有很多,每一篇写的都很好,理解领域驱动设计的人都看的懂. 不过,这些文章对于那些初学者而 ...
- 【DDD】使用领域驱动设计思想实现业务系统
最近新接了一个业务系统——社区服务系统,为了快速熟悉和梳理老系统的业务逻辑和代码,同时对老系统代码做一些优化,于是打算花上一个月时间不间断地对老系统服务进行重构.同时,考虑到社区业务的复杂性,想起了之 ...
随机推荐
- NPM 与 Nodejs
安装了Nodejs之后,NPM也安装好了 如何知道当前是否已经安装Nodejs和NPM了呢? node -v //查看当前nodejs的版本 npm -v //查看当前npm的版本 NPM 初始化 n ...
- 如何浏览github上所有的公开的项目?
github 上面项目多如牛毛,没有维护的.没有意义的或太过偏门的项目也是数不胜数,所以直接按照字母或者更新顺序浏览实在没什么意义. 有一个做法是去 github 搜 awesome list,比如通 ...
- LightOJ - 1038 Race to 1 Again —— 期望
题目链接:https://vjudge.net/problem/LightOJ-1038 1038 - Race to 1 Again PDF (English) Statistics Foru ...
- win下发现两个有用的快捷键
调出命令行工具:win+x然后a.默认是cmd的管理员模式,可以改成powershell. 从当前目录打开命令行:shift + 鼠标右键
- Linux三种网络-vmware三种网络模式
Host-Only 桥接 NAT VMware虚拟机三种联网方法及原理 一.Brigde——桥接:默认使用VMnet0 1.原理: Bridge 桥"就是一个主机,这个机器拥有两块网卡,分别 ...
- BZOJ 1041 [HAOI2008]圆上的整点:数学【费马平方和定理】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1041 题意: 给定n(n <= 2*10^9),问你在圆x^2 + y^2 = n^ ...
- [原创]java在线打开PDF文档
步骤一:(涉及到的工具) 访问:http://www.zhuozhengsoft.com/dowm/,从官网下载PageOffice for Java. 步骤二:(配置工程) 1. 解压PageOff ...
- C#多线程编程介绍——使用thread、threadpool、timer
C#多线程编程介绍——使用thread.threadpool.timer 在system.threading 命名空间提供一些使得能进行多线程编程的类和接口,其中线程的创建有以下三种方法:thread ...
- 基于jQuery Ajax实现无刷新文件上传
最近因项目需求更改,需要实现选择文件后即时上传至服务器,然后提交后,加载xls表格内容到jqgrid表格中,文件上传功能实现示例: 前端jsp页面: <form id="uploadF ...
- [HAOI 2011] Problem A
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2298 [算法] 考虑用总人数 - 最多人说真话 显然 , 对于每个人 , 如果他说的 ...