
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
领域驱动设计随着互联网的不断发展而被越来越多的程序员掌握并应用,而本文我们就通过案例分析来简单了解一下,零基础学习领域驱动设计需要掌握哪些知识。
什么是领域?
在软件开发的上下文中,“域”指的是业务。在应用程序开发过程中,通常使用术语域逻辑或业务逻辑。基本上,业务逻辑是应用程序逻辑所围绕的知识领域。应用程序的业务逻辑是一组规则和指导原则,用于解释业务对象应如何相互交互以处理建模数据。
注意:
软件工程领域的领域是要在其上构建应用程序的业务。
领域驱动设计:
假设我们的软件已经使用了所有新技术堆栈和基础设施,这样的软件设计架构非常棒,但是当我们在市场上发布这个软件时,终还是要由终用户来决定我们的系统是否优秀。另外,如果系统不能解决业务需求,对任何人都没有用处;不管它看起来有多漂亮,或者它的基础设施有多好。根据EricEvans的说法,当我们在开发软件时,我们的重点不应该主要放在技术上,而应该主要放在业务上。记住:
“客户的工作不是知道他们想要什么“---史蒂夫·乔布斯
领域驱动设计涉及两种设计工具,一种是战略设计工具,另一种是战术设计工具。程序员或开发人员通常处理战术设计工具,但如果我们有战略设计工具的知识和良好的理解,它将帮助我们构建好的软件。
Spring数据家族下的大多数框架都是根据领域驱动的设计方法构建的。
战略设计:
战略设计工具帮助我们解决所有与软件建模相关的问题。它是一种类似于面向对象设计的设计方法,在面向对象设计中,我们被迫从对象的角度思考问题。在战略设计方面,我们被迫从环境的角度来思考。
上下文(Context):
我们可以把这个词看作是一个英语单词,它指的是某一事件、事件、陈述或想法的情况,它的意思可以根据这些情况来确定。
除了上下文之外,战略设计还讨论了模型、泛在语言和边界语境。这些是领域驱动设计的战略设计中常用的术语。让我们逐一理解。
模型:
充当核心逻辑并描述领域的选定方面。它用于解决与该业务有关的问题。
通用语言:
所有团队成员使用的一种公共语言,用于连接团队围绕领域模型的所有活动。与领域和团队成员交谈时,可以将其视为对类、方法、服务和对象使用通用动词和名词。
边界上下文:
指的是上下文的边界条件。它是对边界的描述,并充当一个阈值,在这个阈值中定义并适用于特定的域模型。
战术设计:
战术设计讨论实现细节,即建模领域。它通常会处理有界上下文中的组件。我们可能听说过或使用过诸如服务、实体、存储库和工厂之类的东西。它们都是通过域驱动设计创造并流行的。战术设计过程发生在产品开发阶段。
让我们讨论一些重要的战术设计工具。这些工具是高级概念,可用于创建和修改域模型。
实体:
基于面向对象原则工作的程序员可能知道类和对象的概念。在这里,实体是具有某些属性的类。这些类的实例具有全局标识,并且在整个生命周期中都保持相同的标识。请记住,属性状态可能会发生变化,但身份永远不会改变。简而言之,实体可以实现一些业务逻辑,并且可以使用ID进行标识。在编程的上下文中,它通常在DB中作为行持久保存,并且由值对象组成。
值对象:
它是不可变的轻量级对象,没有任何标识。值对象通过执行复杂的计算,将繁重的计算逻辑与实体隔离开来,从而降低了复杂性。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。