文章目录
【DDD(领域驱动设计)思想解读及优秀实践 00】开篇词|带你吃透DDD
我是一名在IT界奋斗了二十多年的老兵。目前在国内一家软件公司担任首席咨询师,也是数字化转型与运营团队的DDD交付负责人。平时的工作主要是给客户提供软件开发方法学、架构治理、研发效能提升等方面的帮助。
DDD,也就是“领域驱动设计”,在软件工程里,属于软件开发方法学的范畴。它继承了面向对象和敏捷方法的精华,并提炼了一套更容易掌握的原则、模式和实践,特别适合复杂的企业应用的开发。
这些年,随着数字化转型的浪潮,我们为很多家大中型企业,在几十个项目里引入了DDD,解决了很多实际的痛点和问题。
比如说,有的企业的业务很复杂,业务人员和开发人员总是很难把需求完全说清楚,直到写完代码,用户测试的时候,才知道开发人员的理解跑偏了。采用了DDD以后,就可以利用领域建模,把业务知识充分地严格化和可视化。这样,在分析设计阶段,就能对齐业务和开发的理解。
还有一些系统的需求变化很快,开发很难跟上业务的节奏。有时为了能够在短期内应付变化,又会写出“打补丁”式的代码,给系统留下隐患。这种情况下,采用领域建模的方法,把领域知识抽象化,把相对稳定和相对变化的部分分开,并把变化的部分设计成可插拔、可配置的,就能开发出灵活、易扩展的系统。
另外,还有一些项目希望采用微服务架构,但是缺乏拆分的依据,不知道怎么确定服务的粒度和边界。这时通过DDD的领域建模和限界上下文的划分,就可以给微服务的拆分提供坚实的基础。
还有一种常见的问题,就是有些企业