Skip to content
土拨鼠 edited this page Sep 12, 2018 · 5 revisions

MARMOT 后端接口框架说明文档

目录

该框架主要是基于DDD,CQRS,六边形模型的思路去架构.基于DDD领域驱动的微服务架构,我们可以更好的和用户方来分析项目需求(可以配合使用四色原型),大家可以使用通用的领域语言来讨论领域对象.使用composer做第三方package管理.

更多是想把基于数据库编程(一个表单为一个对象,ORM模式)的思路,解耦为领域对象和存储层.数据库的表只是作为一个存储层来考虑.领域对象是我们通用讨论的对象. 你是不是也在开发中经常遇见如下问题:

  • 几乎没有使用过interface,abstracttrait.
  • 没有深入理解过什么是面向抽象.
  • 在日常开发中几乎很难真正使用上设计模式.
  • 无法构建脱离于数据库的单元测试.
  • 构建的model其实就是一张数据库表的映射, 没有任何业务逻辑, 只有一些对表的操作方法.

以上我这些都是我想解决的问题.

采取事件驱动模式开发:

Command -> CommandBus -> CommandHandler -> Event.

什么是DDD

简单来说DDD专注的是业务实现, 不是技术实现. 这里可能简单三言两语说不清楚. 推荐一些读物方便大家理解:

领域驱动设计 实现领域驱动设计

什么是CQRS

这里不花过多篇幅解释, 有兴趣可以自行百度下CQRS

其实这里我想关注的视角是Command模式, 我把所有对业务的动作都会提炼成一个命令来体现.

查询方面我们暂时实现的是使用ES, 来提供查询. 至于数据同步可以使用消息队列来实现, 我们目前使用的是RabbitMQ

cqrs

什么是六边形模型

这里不花过多篇幅解释, 有兴趣可以自行百度下ddd 六边形模型

HexagonalArchitecture

Clone this wiki locally