Featured image of post Java工程师 DDD_01_start

Java工程师 DDD_01_start

🌏Java工程师 DDD学习 🎯这篇文章用于记录 DDD学习

🎄设计模式的重要地位

技术的价值是在实现业务上来体现的 好的设计模式是软件可拓展性和可维护性的基础

🎄软件核心复杂性的应对之道

📑 概述

DDD(领域驱动设计)的提出主要是为了解决软件开发中的复杂性问题。在过去,开发者往往更关注技术细节和数据结构,而忽视了软件系统的实际应用场景和需求,这导致系统难以维护和扩展。

DDD强调将软件系统的核心业务逻辑抽象出来,并将其建模为领域模型,以便更好地理解和满足业务需求。这种方法可以帮助开发者更好地组织代码,提高代码的可读性和可维护性,从而`更好地应对不断变化的业务需求

🌱 领域驱动设计是一种思潮

(1)技术主动理解业务,业务如何运行,软件就如何构建

(2)让领域专家一起参与软件建设

🌱 领域驱动设计是一种架构思想

减少代码重构或者不用重构 让复杂系统保持年轻 -> 项目越复杂,使用DDD的收获越大

🎄如何理解软件的核心复杂性

软件的核心复杂性主要来自于对现实世界问题的建模。现实世界中的问题通常涉及多个领域和方面,这些领域和方面之间相互关联、相互影响,形成一个复杂的系统。在软件开发中,需要将这些问题抽象为计算机可以理解和处理的模型,这个过程本身就非常复杂。

此外,软件开发还需要考虑系统的可扩展性、可维护性、性能等因素,这些因素也会增加软件的复杂性。在大型软件系统中,由于系统规模的扩大和功能的增加,软件的复杂性会呈指数级增长,这给软件开发和维护带来了很大的挑战。

领域驱动设计(DDD)正是为了解决这种复杂性而提出的。DDD强调将现实世界的问题抽象为领域模型,通过领域模型来理解和描述问题,并将领域模型作为软件开发的基础。这种方法可以帮助开发者更好地理解和应对软件的复杂性,从而提高软件的可维护性和可扩展性。

🎄什么是领域模型?

领域模型(Domain Model)是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系

领域模型是描述业务用例实现的对象模型,是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业务用例,包括业务中承担的角色及其当前职责。

领域模型通常由一组领域对象组成,这些对象代表了业务领域中的实体、概念或概念之间的关系。它们包含属性、行为和业务规则,能够对业务逻辑进行建模和处理。

🎄DDD的四个核心特点

(1)DDD以领域划分为设计基础

(2)DDD以通用语言为建设核心

项目组织结构也是一种表达通用语言 方便程序员们达成共识 提升开发效率

(3)DDD以一系列抽象概念为开发模式

(4)DDD以四层架构为主要思想

(5)DDD有助于解决系统老化的问题