1、基础设施
api
utils
2、service 服务
3、business 业务
4、const 常量
5、state 状态
6、domain
service 各个 Domain 下的基础功能业务
repository 某一个独立 Domain 下的获取数据的业务
model
7、common
helper
model
cache
compass
env
jsbridge
net
视图数据 业务数据 逻辑数据
左 视图数据 右逻辑数据
业务逻辑
Application 发起 service 请求 获取领域对象 校验通过 更新用户状态 持久化
- Application:应用层,负责领域逻辑的封装。主要角色:ApplicationService、CommandHandler。
- Boostrap:启动管理层,负责启动过程管理,如:注册Ioc、初始化配置。主要角色:BootstrapListener。
- Commands:命令层,是一个契约层。主要角色:Comamnd、DTO。
- Controllers:控制器层,边界层。主要角色:Controller。
- Domain:领域层,负责领域逻辑的组织。主要角色:Aggregate、Entity、ValueObject、Factory、DomainService、IRepository、IUnitOfWork。
- Events:事件层,是一个契约层,跨聚合流程可以采用。主要角色:Event。
- EventSubscribers:事件监听层。主要角色:EventSubscriber。
- Infrastructure:基础设施层。主要角色:Repository、QueryService、UnitOfWork。
- Query:查询层,为UI的查询提供服务,主要角色:QueryService。
项目整体采用简单的CQRS架构,Command端采用DDD组织,Query直接从数据库返回dynamic类型。Event可以用来处理跨聚合通信,也可以用来处理长事务或离线事务。