领域驱动设计实践(5)-术语

第一部分 领域驱动设计的原则与实践 DDD 第一部分 领域驱动设计的原则与实践 阅读详情

AGGREGATE(聚合)

——聚合就是一组相关对象的集合,我们把聚合作为数据修改的单元。外部对象只能引用聚合中的一个成员,我们把它称为根。在聚合的边界之内应用一组一致的规则。

分析模式(analysis pattern)

——分析模式是用来表示业务建模中的常见构造的概念集合。它可能只与一个领域有关,也可能跨多个领域[Fowler 1997, p. 8]。

ASSERTION(断言)

——断言是对程序在某个时刻的正确状态的声明,它与如何达到这个状态无关。通常,断言指定了一个操作的结果或者一个设计元素的固定规则。

BOUNDED CONTEXT(限界上下文)

——特定模型的限界应用。限界上下文使团队所有成员能够明确地知道什么必须保持一致,什么必须独立开发。

客户(client)

——一个程序元素,它调用正在设计的元素,使用其功能。

内聚(cohesion)

——逻辑上的协定和依赖。

命令,也称为修改器命令(command/modifier)

——使系统发生改变的操作(例如,设臵变量)。它是一种有意产生副作用的操作。

CONCEPTUAL CONTOUR(概念轮廓)

——领域本身的基本一致性,如果它能够在模型中反映出来的话,则有助于使设计更自然地适应变化。

上下文(context)

——一个单词或句子出现的环境,它决定了其含义。参见BOUNDED CONTEXT。

CONTEXT MAP(上下文图)

——项目所涉及的限界上下文以及它们与模型之间的关系的一种表示。

CORE DOMAIN(核心领域)

——模型的独特部分,是用户的核心目标,它使得应用程序与众不同并且有价值。

声明式设计(declarative design)

——一种编程形式,由精确的属性描述对软件进行实际的控制。它是一种可执行的规格。

深层模型(deep model)

——领域专家们最关心的问题以及与这些问题最相关的知识的清晰表示。深层模型不停留在领域的表层和粗浅的理解上。

设计模式(design pattern)

——设计模式是对一些互相交互的对象和类的描述,我们通过定制这些对象和类来解决特定上下文中的一般设计问题[Gamma et al.1995, p. 3]。

精炼(distillation)

——精炼是把一堆混杂在一起的组件分开的过程,从中提取出最重要的内容,使得它更有价值,也更有用。在软件设计中,精炼就是对模型中的关键方面进行抽象,或者是对大系统进行划分,从而把核心领域提取出来。

领域(domain)

——知识、影响或活动的范围

领域专家(domain expert)

——软件项目的成员之一,精通的是软件的应用领域而不是软件开发。并非软件的任何使用者都是领域专家,领域专家需要具备深厚的专业知识。

领域层(domain layer)

——在分层架构中负责领域逻辑的那部分设计和实现。领域层是在软件中用来表示领域模型的地方。

ENTITY(实体)

——一种对象,它不是由属性来定义的,而是通过一连串的连续事件和标识定义的。

FACTORY(工厂)

——一种封装机制,把复杂的创建逻辑封装起来,并为客户抽象出所创建的对象的类型。

函数(function)

——一种只计算和返回结果而没有副作用的操作。

不可变的(immutable)

——在创建后永远不发生状态改变的一种特性。

隐式概念(implicit concept)

——一种为了理解模型和设计的意义而必不可少的概念,但它从未被提及。

INTENTION-REVEALING INTERFACE(释意接口)

——类、方法和其他元素的名称既表达了初始开发人员创建它们的目的,也反映出了它们将会为客户开发人员带来的价值。

固定规则(invariant)

——一种为某些设计元素做出的断言,除了一些特殊的临时情况(例如,方法执行的中间,或者尚未提交的数据库事务的中间)以外,它必须一直保持为真。

迭代(iteration)

——程序反复进行小幅改进的过程。也表示这个过程中的一个步骤。

大型结构(large-scale structure)

——一组高层的概念和/或规则,它为整个系统建立了一种设计模式。它使人们能够从大的角度来讨论和理解系统。

LAYERED ARCHITECTURE(分层架构)

——一种用于分离软件系统关注点的技术,它把领域层与其他层分开。

生命周期(life cycle)

——一个对象从创建到删除中间所经历的一个状态序列,通常具有一些约束,以确保从一种状态变为另一种状态时的完整性。它可能包括ENTITY在不同的系统和BOUNDED CONTEXT之间的迁移。

模型(model)

——一个抽象的系统,描述了领域的所选方面,可用于解决与该领域有关的问题。

MODEL-DRIVEN DESIGN(模型驱动的设计)

——软件元素的某个子集严格对应于模型的元素。也代表一种合作开发模型和实现以便互相保持一致的过程。

建模范式(modeling paradigm)

一种从领域中提取概念的特殊方式,与工具结合起来使用,为这些概念创建软件类比。(例如,面向对象编程和逻辑编程。)

REPOSITORY(存储库)

——一种把存储、检索和搜索行为封装起来的机制,它类似于一个对象集合。

职责(responsibility)

——执行任务或掌握信息的责任[Wirfs-Brock et al. 2003,p. 3]。

SERVICE(服务)

——一种作为接口提供的操作,它在模型中是独立的,没有封装的状态。

副作用(side effect)

——由一个操作产生的任何可观测到的状态改变,不管这个操作是有意的还是无意的(即使是一个有意的更新操作)。

SIDE-EFFECT-FREE FUNCTION(无副作用的函数)

——参见[FUNCTION]。S

TANDALONE CLASS(孤立的类)

——无需引用任何其他对象(系统的基本类型和基础库除外)就能够理解和测试的类。

无状态(stateless)

——设计元素的一种属性,客户在使用任何无状态的操作时,都不需要关心它的历史。无状态的元素可以使用甚至修改全局信息(即它可以产生副作用),但它不保存影响其行为的私有状态。

战略设计(strategic design)

——一种针对系统整体的建模和设计决策。这样的决策影响整个项目,而且必须由团队来制定。

柔性设计(supple design)

——柔性设计使客户开发人员能够掌握并运用深层模型所蕴含的潜力来开发出清晰、灵活且健壮的实现,并得到预期结果。同样重要的是,利用这个深层模型,开发人员可以轻松地实现并调整设计,从而很容易地把他们的新知识加入到设计中。

UBIQUITOUS LANGUAGE(通用语言)

——围绕领域模型建立的一种语言,团队所有成员都使用这种语言把团队的所有活动与软件联系起来。

统一(unification)

——模型的内部一致性,使得每个术语都没有歧义且没有规则冲突。

VALUE OBJECT(值对象)

——一种描述了某种特征或属性但没有概念标识的对象。

WHOLE VALUE(完整值)

——对单一、完整的概念进行建模的对象。

Analysis Pattern 阐述对象重用,模式分析。面向对象分析与设计的另一种思路,注重结果,侧重model。 立即下载

相关推荐

用Spirent Test Center测试交换机Head of Line(HOL)Blocking

测试目的:设备执行拥塞控制,使非阻塞端口不受阻塞端口影响 预设条件:在RFC2889里按以下步骤设置,端口1和端口3同时向端口4发送数据包,端口1向端口2发送数据包 测试步骤:运行设置好的RFC2889 测试结果:所有frame size都显示没有Head of Line(HOL),即非阻塞端口不受阻塞端口所影响 ...

Yuna_的博客 1357

解读《领域驱动设计 软件核心复杂性应对之道》(四)

如何让我们设计的框架,在后期更容易维护和修改,本章给出来了一些参考思路。

liufangbaishi2014的博客 991

沈阳计算机研究所复试,沈阳计算所复试试题附答案.doc

沈阳计算所复试试题附答案目录数据结构1200612007220085200914操作系统16200616200718200818200919组成原理20200620200720200821200921经典算法22数据结构2006数据结构部分(共25分,第1题10分,第2题15分)在(下图)所示的有向图中:v1 v2v4 ...

weixin_42511053的博客 857

设计理念

设计理念 1. DDD架构演进 1.1 DDD依赖倒置架构 Vernon在它的《实现领域驱动设计》一书中提到了采用依赖倒置原则改进的方案。 所谓的依赖倒置原则指的是:高层模块不应该依赖于低层模块,两者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象。 从图中可以看到,基础设施层位于其他所有层的上方,接口定义在其它层,基础实施实现这些接口。依赖原则的定义在DDD设计中可以改述为:领域...

既无风雨也无晴 1万+

电机控制易混知识点1-基波频率/载波频率/采样频率

在电机控制学习工作中会接触到很多专业名词,其中基波频率,载波频率,采样频率是最常接触到的,特别对于电机控制小白开说,不容易理解,现对这几个概念做下总结归纳。

新能源电机控制工程师 | 聚焦实战问题,搭建互助平台 分享电机控制代码调试、现场故障排查、算法优化中的真实困惑;开放讨论电机基础知识以及工作中遇到难点等共性难题。拒绝单向输出,只做工程师的“技术树洞”与“解忧杂货铺”! 2190

Python爬虫实战:基于最新技术栈的晋江文学城小说爬取

本文将详细介绍如何使用Python最新技术栈构建一个高效的晋江文学城小说爬虫。我们将从爬虫基础知识讲起,逐步深入到反爬机制应对、分布式爬虫设计以及数据存储优化等高级话题。文章包含完整的代码实现,使用aiohttp+asyncio实现异步爬取,Playwright处理动态渲染,并结合Redis实现分布式任务队列。本文旨在为读者提供一个全面的现代Python爬虫开发指南。网络爬虫(Web Crawler)是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据分析和内容聚合等领域。

2201_76125261的博客 870

Tree Shaking和sideEffects配置

需要将 mode 配置设置成 development,以确定 bundle 不会被压缩: const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), }, mode: 'development', optimization: { usedE

前端精髓 1850

2026年高教社杯数学建模国赛A题解题思路:从物理方程推导到MATLAB高效求解的全流程实战指南

□所有代码能够从头运行到尾,不报错(清除workspace重新跑一遍)□论文中的每个图号、表号、公式编号与正文引用一致□附录中附上核心代码(注意:不是全部代码,而是关键求解器和后处理部分)□支撑材料压缩包包含完整代码、数据文件、README说明□摘要字数严格控制在1000字以内,突出创新点和核心结果□。

YOLO 109

关于《Analysis Pattern》的一点线索

由于《分析模式》实在难啃,听网友建议访问了Martin Flower的网站,还找到不少好东西。最近Martin正在整理《分析模式 第2版》,这版比上一版本要容易理解多了,附加了不少UML图,而且有Java代码的示例。 除此之外,《分析模式》第1版由于没有使用UML图,所以读起来很吃力,在Martin的网站上放了UML图,理解起来会更容易一些。可以访问:http://www.martinfowle...

weixin_34176694的博客 367

AOSP 8.0.0编译中的ANDROID_DATA缺失问题解决方案

在AOSP编译过程中,环境变量和路径设置的正确性至关重要。遇到相关的错误时,检查并修正环境配置通常是解决问题的关键。希望本文提供的分析和解决方案能帮助你顺利编译AOSP。

m0_74337424的博客 397

PyCharm 2024最新版图文安装教程(python环境搭建+PyCharm安装+运行测试+汉化+背景图设置)

PyCharm 2024新版图文安装教程(python环境搭建+PyCharm安装+运行测试+汉化+背景图设置)

Code_流苏:在代码中寻诗意,在实践中觅真知 4万+

领域驱动设计DDD和CQRS落地

DDD分层架构 Evans在它的《领域驱动设计:软件核心复杂性应对之道》书中推荐采用分层架构去实现领域驱动设计: image 其实这种分层架构我们早已驾轻就熟,MVC模式就是我们所熟知的一种分层架构,我们尽可能去设计每一层,使其保持高度内聚性,让它们只对下层进行依赖,体现了高内聚低耦合的思想。 分层架构的落地就简单明了了,用户界面层我们可以理解成web层的Controller,应用层和...

jiangbb8686的博客 4484

国科大学习资料--自然语言处理(宗成庆)-2019期末考试题

国科大学习资料–自然语言处理(宗成庆)-2019期末考试题 国科大学习资料–自然语言处理(宗成庆)-2019期末考试题 国科大学习资料–自然语言处理(宗成庆)-2019期末考试题

无名何许人的博客 2434

领域驱动设计模式、原理与实践_领域驱动设计学习之路—DDD的原则与实践

本文是我学习Scott Millett & Nick Tune编著的《领域驱动设计模式、原理与实践》一书的学习笔记,一共会分为4个部分如下,此文为第1部分:领域驱动设计的原则与实践战略模式:在有界上下文之间通信战术模式:创建有效的领域模型有效应用程序的设计模式一、什么是领域驱动设计  脑图浏览:https://www.processon.com/view/5cb49b14e4b0...

weixin_36027743的博客 6019

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java 和领域驱动设计的深度实践

通过在 Java 项目中深入应用领域驱动设计(DDD),我们能够更好地应对复杂的业务需求,并构建出更加健壮、灵活且可维护的系统。DDD 并非一蹴而就,它需要开发者深入理解业务、精心设计领域模型,并通过合理的架构和工具加以实现。虽然 DDD 为 Java 开发带来了诸多挑战,如领域模型设计、跨限界上下文的协作和性能优化,但通过不断学习、重构和实践,团队可以克服这些难题,最终实现业务与技术的完美融合。领域驱动设计不仅是一个架构方法论,它是一种思维方式,要求我们从业务角度出发,反映业务需求并快速迭代。

wolf23151269的博客 1143

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Cleer Arc5耳机领域驱动设计DDD实践

本文介绍Cleer Arc5智能耳机如何通过领域驱动设计(DDD)应对复杂固件系统挑战,包括限界上下文划分、统一语言建模、领域事件解耦与核心聚合设计,实现高内聚、低耦合的可维护架构,并支撑AI降噪、多设备切换等高级功能。

weixin_34471637的博客 903

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

领域驱动设计最佳实践

领域驱动设计(Domain Driven Design,DDD)自诞生以来已有十几年时间,这门本已步入老年的方法学却因为微服务的兴起而焕发了第二春。并不是微服务拯救了领域...

技术杂谈 841

JAVA领域驱动设计DDD在B端营销系统的实践5

我们做的大部分系统都不是全新系统,如CRM、HR或SCM等,已经有很多业界实践,可充分借鉴这些实践,没必要自己创造新概念。要重视统一语言。没有统一语言就不会有概念模型,没有概念模型就不可能有靠谱的代码模型,拿到需求后就开始设计代码模型是不靠谱的。领域驱动设计是团队工作。现实中没有一个是严格意义上的领域专家,所有参与到这项工作的人都可以是领域专家,整个工作可以由技术团队主导,但一定要落地到产品和业务。拥抱变化,持续迭代。

macbookpro11的博客 855

领域驱动设计(DDD)是什么?——从理论到实践的全方位解析

领域驱动设计(DDD)概述DDD 是一种以业务领域为核心的建模方法,它主张从实际业务问题中提炼出领域模型,并借助与业务专家共同构建的“普适语言”,确保开发人员与业务人员在同一概念体系下沟通与协作。核心目标捕捉复杂业务逻辑:将实际业务中的规则和流程精确地映射到代码模型中。降低系统耦合:通过划分业务边界,使得各模块之间保持高度独立,从而提升代码复用性和系统灵活性。高内聚、低耦合的系统构建高内聚:指系统内部各模块、组件围绕单一业务目标组织,职责单一,内部关系紧密。

开源AI 专属 UI——papyrai-ui。《千界明彻录》(故事形式构建元思维)——胡说小说。更多思辨内容在公众号。 2484

领域驱动设计在互联网业务如何实践?

这篇文章会在关于 DDD 的落地实践上,给你一些启发。在探讨领域驱动战术设计的一些问题时,总会有人纠结:这个领域对象应该定义成实体,还是值对象?领域服务和应用服务的区别是...

形势所逼,不进则退 414

业务单据进行领域驱动设计的最佳实践

本文以电商购物场景为例,介绍了领域驱动设计的应用实践。你会发现,DDD的核心目标就是通过各种实用性的方法和技巧提炼出具有体现问题实质的领域模型,协作解决领域问题,从而掌控问题领域本身的错综复杂性。DDD之于爱它的人,就像一个复杂、有挑战性的玩具,在思考问题本质、抽象知识模型中,进入心流状态。

阿里技术 4689

(转)EntityFramework之领域驱动设计实践

EntityFramework之领域驱动设计实践 - 前言 EntityFramework之领域驱动设计实践 (一):从DataTable到EntityObject EntityFramework之领域驱动设计实践 (二):分层架构 EntityFramework之领域驱动设计实践 (三):案例:一个简易的销售系统 EntityFramework之领域驱动设计实践 (四):存储过程 - 领

imJaron的博客 1604
上一篇: 数据采集解决方案咨询
下一篇: Redis [5] Redis开放式问题
hamish-wu
博客等级 码龄15年 2814粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值