# 《Seckill秒杀系统》第10章:基于DDD快速搭建秒杀系统项目并测试

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
课程视频:https://t.zsxq.com/10gDFCN3B (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★★★☆☆
  • 本章重点:基于DDD快速搭建秒杀系统项目框架,并对搭建的项目框架进行测试,旨在让小伙伴们从实战过程中快速了解基于DDD架构模式的项目搭建过程,以及掌握DDD架构模式与MVC架构模式的区别。
  • 课程视频:https://t.zsxq.com/10gDFCN3B (opens new window)

大家好,我是冰河~~

经过前面对研发秒杀系统的一系列准备工作,终于到了正式研发秒杀系统的阶段,相信各位小伙伴已经迫不及待想一起研发秒杀系统了。

# 一、前言

截止到目前,我们已经清楚的了解到为何要学习秒杀系统,明确了秒杀系统的目标与挑战、秒杀系统高并发大流量的应对之道,梳理了秒杀系统的需求与业务流程、秒杀系统的技术流程,制定了秒杀系统的总体方案目标,对秒杀系统进行了架构设计,搭建了秒杀系统的基础环境和研发环境以及对秒杀系统的数据模型进行了设计。接下来,就可以搭建秒杀系统的项目结构了。

# 二、本章诉求

在做足充分准备的基础上,基于DDD快速搭建秒杀系统的项目结构,后续基于DDD架构模式开发秒杀系统。项目结构搭建完成后,以获取用户信息为例对项目结构进行测试。旨在让小伙伴们从项目实战过程中快速了解基于DDD架构模式的项目搭建过程,以及掌握DDD架构模式与MVC架构模式的区别。

# 三、项目结构划分

在第6章秒杀系统总体方案目标与架构设计一文中,介绍了DDD业务架构设计,这里,再来回顾下DDD架构模式,DDD架构模式下会将项目总体上分成:展示层、应用层、领域层和基础设施层,如图10-1所示。


在第6章中,提到了,秒杀系统会借鉴DDD的设计思想,但是不会完全按照DDD的方式进行设计,也算是一种对DDD架构设计的灵活变通。秒杀系统借鉴DDD架构设计思想后,总体上会将整个项目对照DDD划分成四层,每一层提供的功能与DDD架构设计中每一层提供的功能类似,但在领域层的职责上与DDD架构设计略有不同。

(1)展示层(seckill-interfaces工程)

展示层,也叫做用户UI层,是DDD设计的最上层,对外提供API接口,接收客户端请求,解析参数,返回结果数据,并对异常进行处理。

(2)应用层(seckill-application工程)

应用层,也叫做Application层,应用层主要处理容易变化的业务场景,可对相关的事件、调度和其他聚合操作进行相关的处理。

(3)领域层(seckill-domain工程)

领域层,也叫做Domain层,领域层可以说是DDD设计的精髓所在,它是将业务系统中相对不变的部分抽象出来封装成领域模型。

在秒杀系统的设计中,领域层基本不会依赖其他层,也不会依赖基础设施层,这里秒杀系统是与DDD设计存在区别的地方。

(4)基础设施层(seckill-infrastructure工程)

基础设施层,也叫做Infrastructure层,基础设施层会对其他各层提供通用的基础能力,在秒杀系统中,就包括了缓存、通用工具类、消息、系统的持久化机制等。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码