一、项目背景
教育领域,完整的流程板块包括:招生拓客、线索管理、教务管理、学员管理、互动督学、口碑传播。首先,在招生拓客环节,会通过线上营销工具或线下地推方式收集潜在的学员线索信息,并录入到线索管理系统中。在线索管理环节,会采用线索资源管理系统对收集的线索做统一管理,并将潜在学员转为真正的学员,提供给后续的教务管理使用。可见,线索管理在整个教育领域承担着承上启下的作用,重要性不言而喻。
此项目业务场景总览见图1-1,整个项目分为两大业务域,分别是线索域、配置中心域。其中,线索域主要负责线索收集、线索管理等功能;配置中心域负责管理一些公共配置资源,比如,线索关联的标签、来源等。
二、领域驱动基础概念介绍
在介绍DDD相关基础概念前,我先说明下为什么要使用DDD?在非DDD设计思路下的项目,我们一般先根据需求做数据库表的设计,然后根据表结构设计推导出相应的实体对象,这样的实体对象是数据模型转换的结果。此时,这些对象只是数据的载体,是没有行为的。在这种设计模式下,业务流程实现上仍旧是面向过程式,是一种以数据为中心的过程式思想,其开发过程可以理解为是对数据移动、处理和实现的过程。而如果采用DDD的思想去设计,我们将建立一个基于面向对象设计的系统。接下来,我先介绍DDD的标准分层架构,然后介绍下需求分析阶段非常有用的四色原型分析模式,最后简要介绍下方案设计阶段常用到的几个DDD领域概念。
2.1 领域驱动设计标准分层架构
当前,业界比较通用的DDD架构采用的是四层模型,从下到上依次为基础设施层、领域层、应用层和用户界面层。具体的分层架构见图2-1。