领域驱动设计业务框架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】使用领域驱动设计思想实现业务系统
最近新接了一个业务系统——社区服务系统,为了快速熟悉和梳理老系统的业务逻辑和代码,同时对老系统代码做一些优化,于是打算花上一个月时间不间断地对老系统服务进行重构.同时,考虑到社区业务的复杂性,想起了之 ...
随机推荐
- spring-boot5代码
App.java package com.kfit.spring_boot_mybatis; import org.mybatis.spring.annotation.MapperScan; impo ...
- hihocoder 微软编程之美2015 初赛 第二场(暴力+字典序+图论+思维算法)
题目1 : 扑克牌 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 一副不含王的扑克牌由52张牌组成,由红桃.黑桃.梅花.方块4组牌组成,每组13张不同的面值.现在给定52 ...
- 蓝色科技AE宣传片头光晕视频
蓝色科技AE宣传片头光晕视频素材,蓝色AE炫光素材,科技AE片头,精美,AE特效,绚丽,AE模板,视频素材,动画. 地址:http://www.huiyi8.com/xuanguang/ae/
- Tips:PowerDesigner16.5 图表显示Code以及 Columns新增Commet显示
- DLL进一步讲解:extern "C" __declspec(dllexport)
一.__declspec(dllexport): 将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口. 通常它和extern "C" ...
- hdu-5818 Joint Stacks(模拟)
题目链接: Joint Stacks Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- Sysctl命令及linux内核参数调整
一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysctl [-n ...
- AtCoder Grand Contest 004 C:AND Grid
题目传送门:https://agc004.contest.atcoder.jp/tasks/agc004_c 题目翻译 给你一张网格图,指定的格子是紫色的,要求你构造出两张网格图,其中一张你可以构造一 ...
- BZOJ1798:[AHOI2009]维护序列
浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...
- vmware ubuntu14.04 忘记密码
重置root密码 启动系统,一直点击esc键盘,出现如下界面,选择Advanced options for Ubuntu 按回车键确认: 选择recovery mode,按 e : 到 linux / ...