领域驱动设计(DDD)是由Eric Evans首次提出的一种软件开发技术,包含战略,哲学,战术和技术要素,并且与许多特定实践相关。我已经写了关于为什么需要DDD的文章(即使您认为自己不需要),但是在决定使用DDD之后的问题是:如何学习DDD?
尽管完整的解释将需要两百本500页的书,但DDD的本质却非常简单:以域术语捕获域模型,将模型嵌入代码中,并保护其免受损坏。我们可以理解这些概念,并立即加以利用。尽管这种理解水平还很浅,但是它仍然很有用,并且可能足够令人耳目一新,可以大跌眼镜。(注意:在下面的示例中,我假设了一个面向对象的项目,但是原理仍然适用于其他情况。)
DDD战略 与理念
您可能知道DDD具有战略价值。这就是为什么许多拥有极其复杂域的公司都依赖它来生产可以随着业务快速发展的软件的原因。但是您知道DDD也有一个哲学主题吗?您可能已经听说过“泛在语言”一词,当您谈论它时,这是一个大嘴巴,但这是强调DDD基本原理的一种简捷方式。使它无处不在。在实践DDD时,领域术语至上的基本哲学可以分布在三个指导原则中:
通过与领域专家的互动,以领域的方式捕获领域模型。 换句话说,与您要解决问题的业务部门的人交谈,并首先从他们的角度了解他们。这是形成领域无处不在的语言并为和谐模型奠定基础的方式。
在代码中嵌入领域术语。这意味着用领域专家命名事物的方式来命名事物,包括类,方法,命令&