八. 有条不紊:对互联网酒店预订系统项目进行整体划分
更多博客内容访问火龙蛋博客,点击了解详情
1、开篇
上节课我们对互联网酒店预订系统需要使用到的基础组件进行了介绍,包含了响应包定义、数据库访问、缓存、微信消息推送等。这些功能作为课程的基础,辅助我们实现RocketMQ的应用场景。在开始正式编码之前还需要对应用结构进行规划。从今天就将介绍以下几点内容:
-
后台系统的划分
-
代码模块的划分
2、后台系统的划分
整个系统由酒店小程序、酒店管理后台,这两套系统分别对应两个后台的服务,它们分别是:小程序后台API和酒店管理后台API。
如图1 所示,上方虚线框部分已经有儒猿团队提供给大家了,作为学员我们需要关注下方实线框的部分,小程序后台API和酒店后台管理API是这次课程的主体,我们的大部分代码都在这里完成。
图1 后台的结构划分
3、代码模块的划分
上面谈到了我们需要关注的API,这里回到liitle-project-rocketmq项目本身。如果从业务出发我们需要将每个业务划分为不同的模块,每个模块对应一个或者多个服务从而支撑模块的运行。
实际工作中这些服务有可能分开开发和部署,但作为教学实战的项目我们希望方便学员的学习和部署。因此,将这些服务通过包的形式包含在同一个项目中。
如图2所示,我们在liitle-project-rocketmq项目中建立了admin和api两个包,admin用来为酒店后台管理提供API服务,而api 为酒店小程序提供API服务。其中api包中分别包含如下几个包:
-
coupon:包含优惠券相关的DTO、服务、Listener以及MQ消费者。
-
hotel:包含房间相关的DTO、服务、Controller、Listener以及MQ消费者。
-
login:包含登录相关的DTO、服务、Controller、Listener 、枚举状态、MQ生产者以及MQ消费者。
-
message:包含消息推送相关的DTO、Listener 、消息命令以及MQ消费者。
-
order:包含订单相关的DTO、服务、Controller、Listener 、枚举状态、MQ生产者以及MQ消费者。
-
pay:包含消息支付相关的DTO、常量定义、Controller、服务。
图2 项目中的包结构
上面提到的每个包会随着课程的推进不断被丰富,会在其中添加不同的包,例如:Service、Controller、DTO等等。这里大家对整体的包结构有一个了解,做到心中有森林。
4、总结
这一节课介绍了后台系统的划分和代码模块的划分,在后台系统划分中理清了前台后台的区别,并且着重介绍了大家需要关注的后台API部分。而在代码模块划分中,根据业务定义了不同的服务包,以及介绍每个包的职能,这里将代码给大家。