领域驱动设计业务框架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】使用领域驱动设计思想实现业务系统
最近新接了一个业务系统——社区服务系统,为了快速熟悉和梳理老系统的业务逻辑和代码,同时对老系统代码做一些优化,于是打算花上一个月时间不间断地对老系统服务进行重构.同时,考虑到社区业务的复杂性,想起了之 ...
随机推荐
- 基于深度学习的安卓恶意应用检测----------android manfest.xml + run time opcode, use 深度置信网络(DBN)
基于深度学习的安卓恶意应用检测 from:http://www.xml-data.org/JSJYY/2017-6-1650.htm 苏志达, 祝跃飞, 刘龙 摘要: 针对传统安卓恶意程序检测 ...
- Facebook的实时流处理技术——Scuba是Facebook的一个非常快速、分布式的内存数据库,用于实时分析和查询
Scuba,Facebook的一个非常快速.分布式的内存数据库,用于实时分析和查询.是Facebook的回归分析代码.错误报告监控.广告收入监控和性能调试的背后主力. Facebook的实时流处理技术 ...
- workerman介绍
WorkerMan的特性 1.纯PHP开发 使用WorkerMan开发的应用程序不依赖php-fpm.apache.nginx这些容器就可以独立运行. 这使得PHP开发者开发.部署.调试应用程序非常方 ...
- hdu1521排列问题
题目链接 利用指数型母函数解决排列问题 1.口袋中有白球2个,红球3个,黄球1个,任取3个作为一个排列,总共有多少种排列? 类似地用指数型母函数解决 用(1+x/1!+x2/2!)表示取白球0个,1个 ...
- 【Shell】基础正则表示法及grep用法
——<鸟哥的私房菜> 正规表示法就是处理字串的方法,他是以行为单位来进行字串的处理行为:正规表示法透过一些特殊符号的辅助,可以让使用者轻易的达到『搜寻/删除/取代』某特定字串的处理程序:只 ...
- timing-function: steps()
animation语法 animation:name duration timing-function delay iteration-count direction timing-function取 ...
- 关于ssh免密互访
想要通过ssh进行免密处理,细节就不赘述了,白度一搜一大把: 但是我遇到了一个情况,就是生成的公钥后无法复制到user/.ssh目录下,因为没有ssh目录(.ssh是隐藏目录,正常情况下ls都无法查看 ...
- RT-Thread OS的启动流程
1.RT进入main之前, SystemInit函数初始化时钟. 2.main函数位于startup.c文件中.进行两个工作 系统开始前,rt_hw_interrupt_disable关闭所有中断. ...
- java项目文件的路径问题
title: 项目下的路径问题 tags: grammar_cjkRuby: true --- 在javaee的项目中,存取文件,解析xml和properties文件,以及项目中的文件,都需要获取路径 ...
- Idea无法加载主类
今天重装了下电脑,运行idea发现各种问题. 直接进主题哈, 遇到三种情况 第一种: 首先查看这里是否有多个,只保留当前需要用工程路径.点击P右边的删除即可 删除后 然后运行是否能运行. 如果没有的话 ...