一、背景
之前在写DDD的实践代码,耽误了几个星期,最近快接近尾声了,也准备整理一下弄一个电子书小册子。这几周也在加快发布进度。关于NBA体育活动领域的业务,上一篇文章在领域建模分析中有点单刀直入了,仿佛忘了写这个项目的最初目的是什么,需求是什么,直接上就有点令人琢磨不透,增加理解成本。这里补充一下。项目名称或者需求就是要仿照当前NBA体育赛事的一些现实场景做一个篮球运营管理平台。这里简单说明一下需求:
1.对球队,球员的一些活动进行管理,如选秀,交易。2.管理比赛赛程,比赛活动,以及收集并处理比赛活动数据3.对球员交易,球队资产,球员合同,球员薪资等信息进行管理。4.对接其他第三方合作商,如经纪公司,广告商,视频转播直播合作商等商务活动。
二、领域分析
2.0 领域上下文图

以上只是目前basketball-plat中体现的一些核心领域,另外还有薪资域和工作流等支撑域没有体现。
三、领域服务构建
3.0 服务依赖包/中间件
springboot ,dubbo, rocketmq, mybatis, mapstruct,mysql
3.1 领域服务工程
1.basketballDemo功能:基于cola架构分包思想管理球员,球队,交易,比赛活动,选秀活动等信息。给不同角色的联盟成员提供一定的数据管理能力,属于核心系统。2.basketball-statistics功能:比赛活动实时数据收集与查询,单独做数据库。3.basketball-workflow功能:目前不打算写具体业务代码,basketballDemo会依赖basketball-statistics工程提供比赛数据,同时会依赖basketball-workflow提供审批流服务。这里只是虚拟一个服务作为basketballDemo的下游服务。4.basketball-salary 功能:目前不打算写具体业务代码,后续扩展球员薪资发放等业务逻辑。
四、业务调用流程
4.1 球员报名选秀

4.2 比赛活动安排和数据统计

4.3 球员签约

4.4 球队球员交易

4.5 获取球队战绩列表

五、代码说明
5.1 中间件依赖
目前根据cola架构模块的思想将技术相关的都放在infrast层,另外的相关配置也可以通过调整来分别管理。
5.2 aop集成
aop相关的目前从代码工厂看可以全部放到start项目工程里,但是也不一定合适,目前看有些具有特定功能的aop功能可以分散到不同工程模块下,如幂等,日志,锁等。
5.3 spring 事件监听消费
在消息消费的地方通过MqHandler接收消息,同时借助spring event 机制将事件发出去,由对应应用层消息监听器监听。
5.4 git地址
https://gitee.com/codergit.com/dddin-action.git
原文始发于微信公众号(神帅的架构实战):DDD代码实践篇–NBA篮球运营管理平台
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/241667.html