领域驱动
什么是领域驱动?
领域指软件要处理问题的范围,如要开发项目库的需求,那么项目库这个内容就是我们所关注的一个领域,当然,项目库是属于预算管理这个大问题领域中的一个子域。
领域驱动设计是一种思想,不是一种指定的设计方式,可以通过多种方式达到领域设计所追求的结果,如四色建模、用例图、六边形理论等等。
领域驱动想要解决什么问题?
领域驱动设计思想想要解决的是软件需求、软件设计到软件实现过程中的知识连贯性及一直性表达,即需求可以理解设计,设计能够直接用于实现,通过实现可以反推到设计。 因此,领域驱动设计又叫软件应用设计。更具体来说,其解决的是代码存放位置及抽象关系,这个抽象关系是按照领域(问题域)直接映射到实现的一个映射。
现有的设计存在的问题
我们现有的设计方法大多是拿到需求文档,根据需求文档设计表结构,针对表结构进行编程,这样也是没有问题的,针对简单的业务来说,这种软件实现方式是合理的,业务逻辑简单,没有过度设计的内容。但当业务系统逐渐由简单变为复杂时,这种方式导致的一个问题是业务逻辑散落在各处的代码中,没有沉淀出领域内的业务知识。
以工资系统为例,工资系统现存的最主要的几个问题
- 1)代码重复,工资有个很重要的批次概念,其业务含义是对一次工资的组织发放。在工资的所有业务中均涉及批次的这个概念,但在业务实现中,开发人员在哪里需要批次就直接访问数据库去获取批次信息,不利于后期维护;
- 2)分层模糊:分层的目标是对代码进行整理分类,方便团队对代码形成统一的理解&#x