问题
- DDD是什么?为了解决什么问题?
- 什么叫领域转件相当于我们什么角色?
DDD
DDD是领域驱动设计(Domain-Driven-Design),了解它首先我们要了解什么是领域模型呢。
我们在现实中遇到了一个问题,需要RD开发一个系统来解决它,这时候就需要将这个问题映射成一个抽象的模型,这个模型作为代码和现实的纽带被叫做领域模型。
我们的领域专家和研发工程师对领域模型不断的探讨,精简,逐渐的使其越来越抽象通用,逐步的使我们的系统更完善,功能更强大。
上述突出以下几点:
- 领域模型是现实和程序的纽带,他反应了一个具体的显示问题。
- 它需要被领域专家和研发讨论,所以应该有统一的双方都能理解的术语。
- 它不是一成不变的,在做加法的同时也需要在讨论中逐渐做减法。
- 它不单单是一个简单的数据集合,他还描述了领域模型间不同的关系。
- 它需要不断的演进。
统一术语
在领域模型中我们需要统一术语我们称他们为通用语言,他能减少领域专家和我们的研发的沟通成本,避免翻译带来的语义混淆。
两者是通过术语来沟通的:领域专家的模型—->术语<––研发的系统。
对术语的要求:
- 对于通用语言来说:模型和代码必须统一,比如模型定义了Goods,那么代码中要有相应的类Goods
- 通用语言需要讨论:我们在技术讨论中应该尽量用简短的通用语言来描述
- 要有不断完善的文档简短的文档来维护我们的通用语:
- 我们可以通过简短类图+类图备注进行描述,并且文档应该作为代码和模型的叩痛补充;
- 在模型演进中通过通用语言的完善来更迭文档;