-
Notifications
You must be signed in to change notification settings - Fork 2
Home
土拨鼠 edited this page Sep 12, 2018
·
5 revisions
该框架主要是基于DDD,CQRS,六边形模型的思路去架构.基于DDD领域驱动的微服务架构,我们可以更好的和用户方来分析项目需求(可以配合使用四色原型),大家可以使用通用的领域语言来讨论领域对象.使用composer做第三方package管理.
更多是想把基于数据库编程(一个表单为一个对象,ORM模式)的思路,解耦为领域对象和存储层.数据库的表只是作为一个存储层来考虑.领域对象是我们通用讨论的对象. 你是不是也在开发中经常遇见如下问题:
- 几乎没有使用过
interface
,abstract
和trait
. - 没有深入理解过什么是面向抽象.
- 在日常开发中几乎很难真正使用上设计模式.
- 无法构建脱离于数据库的单元测试.
- 构建的
model
其实就是一张数据库表的映射, 没有任何业务逻辑, 只有一些对表的操作方法.
以上我这些都是我想解决的问题.
采取事件驱动模式开发:
Command -> CommandBus -> CommandHandler -> Event
.
简单来说DDD专注的是业务实现, 不是技术实现. 这里可能简单三言两语说不清楚. 推荐一些读物方便大家理解:
这里不花过多篇幅解释, 有兴趣可以自行百度下CQRS
其实这里我想关注的视角是Command
模式, 我把所有对业务的动作都会提炼成一个命令来体现.
查询方面我们暂时实现的是使用ES
, 来提供查询. 至于数据同步可以使用消息队列来实现, 我们目前使用的是RabbitMQ
这里不花过多篇幅解释, 有兴趣可以自行百度下ddd 六边形模型