论文部分内容阅读
领域驱动设计是一种针对复杂软件系统的建模与分析方法,它从战略设计和战术设计两个层面提供了诸多用于软件系统的建模与分析工具。近年来,随着中台和微服务架构的迅速发展,领域驱动设计向上通过战略设计指导中台业务模型的构建,向下通过战略和战术设计指导微服务的设计和实现,在软件开发中扮演着越来越重要的角色。然而,领域驱动设计实践存在许多挑战。一方面,领域驱动设计是一种方法论,并没有对具体代码设计做出规范与指导,这使得不同开发者基于相同的领域驱动设计建模结果开发出来的系统差异很大,从而导致开发者沟通成本骤增,现实架构逐渐偏离于理想架构。另一方面,领域模型是领域驱动设计的核心,然而它在系统架构演进时具有很高的维护成本。系统架构往往是不断演进的,系统架构演进时为了与领域模型保持统一就需要对代码做出相应调整。为了应对领域驱动设计实践遇到的挑战,本文设计并实现了一套面向编码规范和架构演进的领域驱动设计开发框架Tiad,用于辅助开发者进行领域驱动设计实践。具体来说,为解决挑战一,Tiad提供了领域驱动设计代码约束检查功能,能支持在代码中定义标准的领域驱动设计构建块,并提供相应的代码约束检查规则,从而在领域驱动设计实践时对代码做出规范与指导。为解决挑战二,Tiad提供了透明化本地和分布式领域事件及事务功能,通过支持事件驱动编程降低代码耦合,通过透明化技术实现解耦业务实现和技术选型,从而避免架构演进时对领域模型间通信方式、事务控制方式的调整,降低领域模型在架构演进时的维护成本。Tiad还提供了配套集成开发环境插件,能在编码时实时生成、检查和修复代码,有较高易用性;Tiad各模块相对独立并使用可插拔化的设计,有较高扩展性;Tiad基于高性能中间件并进行了性能测试,有较高性能。Tiad在通过上述功能解决领域驱动设计挑战的同时,还兼具较高易用性、扩展性和性能,能够有效辅助开发者进行领域驱动设计实践。