深入实践DDD:以DSL驱动复杂软件开发
上QQ阅读APP看书,第一时间看更新

1.1.2 什么是软件的核心复杂性

我们知道,Domain-Driven Design:Tackling Complexity in the Heart of Software一书的副标题翻译过来是“软件核心复杂性应对之道”,那么,这个软件的核心复杂性(Complexity)是怎么来的呢?

Complexity有繁杂之意。它的解释之一是:因为存在很多相互关联的部分而导致的状况。

对于大多数软件系统,它们的核心复杂性是由其服务的领域涉及的范围带来的。比如说,随着领域内的名词概念增多,概念以及概念之间发生关系的可能性也会呈几何级数增长,于是我们想要全面地理解领域就会变得越来越困难。

所以,解决核心复杂性的关键还是在于切分(分而治之),也就是说希望可以缩减每次要解决的领域问题的范围,简化概念和概念之间的关系。DDD正是这么做的。

那么,DDD要构建的领域模型到底是什么东西?它有哪些关键概念可以帮助我们实现“分而治之”呢?