Skip to content

一个简单的DDD领域驱动设计Demo.旨在解决一个经典的社会场景的编创化。场景:具体见下文图片。知识点:DDD设计实现,异步,定时器,事件总线,充血模型。

License

Notifications You must be signed in to change notification settings

ImagineL/DDD-DEMO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DDD-DEMO

一个简单的DDD领域驱动设计Demo.旨在解决一个经典的社会场景的编创化。场景:具体见下文图片。知识点:DDD设计实现,异步,定时器,事件总线,充血模型。

场景

image

设计初衷:

OO的编程思想应该于真实社会场景的生活思想是非常相似的。DDD的业务驱动设计,可以简单理解为:面向场景的设计。那么一个场景的组成:时间,地点,人物(人物描述,人物行为),与时刻发生的事实。人类社会有法律监听审判,编程社会有事件总线监听处理。因此:本DEMO虽精简,事件却必不可少。

项目结构:

Domain:领域层--正式项目请独立工程
Domain->Model:聚合跟--正式项目可配合ORM使用
Domain->Repository:仓储层--本项目无存储,正式项目请启用!
Domain->Service:服务层--多个聚合跟的参与的有边界的问题的服务;
Domian->Event:事件层--所有事件对象与事件处理器。正式项目如需溯源,请更改其中的EventBus代码。

PS
  1. 常简单,因此没有采用DI,IOC技术。在正式开发DDD项目时,请一定要注意使用DI、IOC。目的很明确:场景的发生、对象变化这些都是在描述业务场景,具体实现方式应是背后的适配层实现。DDD仅实现了业务专用语言DSL->转化成人类能理解的代码语言,而非转化成电脑理解的代码。
  2. 异步函数名请加上asnyc作为后缀。时间仓促暂时不改了.
  3. DDD+DI+IOC+内存中间件(注入模式)+消息中间件(注入模式)+CQRS+EventBus 将在下一个开源的.NetCore Web项目DEMO中使用。

最后一句

时间太晚,以后补上blog Edit by LJJ

About

一个简单的DDD领域驱动设计Demo.旨在解决一个经典的社会场景的编创化。场景:具体见下文图片。知识点:DDD设计实现,异步,定时器,事件总线,充血模型。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published