DDD领域驱动设计理论篇
一、Why DDD? 在加入X公司后,开始了ASP.NET Core+Docker+Linux的技术实践,也开始了微服务架构的实践。在微服务的学习中,有一本微软官方出品的《 .NET微服务:容器化.NET应用架构指南 》是我们学习的葵花宝典,纵观微软官方放出来的Demo项目的演变历史(可以参见杨晓东《 我眼中的ASP.NET Core微服务 》一文): (1)PetShop:WebForm 的示例程序。典型的三层架构风格的应用程序。 (2)MusicStore: 针对于 MVC3~5 框架和 EF 的一个示例程序。无明显架构风格。 (3)eShop: 针对于 ASP.NET Core 的示例程序,它是一个 REST架构风格的应用程序。 分析其架构风格的转变可以看出,现代应用程序架构已经从单一的传统风格架构(N-Layered)转向了多种混合风格架构(Mixed-Style),像最新的eShopOnWeb/Container项目就包含了以下多种架构风格: 我们可以看到,其中主要包括了以下两种架构风格(虽然看起来好像有四种): 基于数据驱动的CRUD微服务 (比如上图中Catalog Microservice和Basket Microservice) 基于DDD的微服务(比如上图中的Ordering Microservice 订单微服务) 目前