腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
视频
用户
沙龙
专栏
专区
综合排序
丨
最热优先
丨
最新优先
时间不限
领域
驱动
模型(
DDD
)
什么是
领域
驱动
模型? ),简称Evans
DDD
,
领域
驱动
设计思想进入软件开发者的视野。 而在业务知识梳理的过程中,我们必然会形成某个
领域
知识,根据
领域
知识来一步步
驱动
软件设计,就是
领域
驱动
设计的基本概念。而
领域
驱动
设计的核心就在于建立正确的
领域
驱动
模型。 ? 当系统越来越复杂时,开发时间指数增长,维护成本很高
DDD
设计思想 采用
DDD
的设计思想,业务逻辑不再集中在几个大型的类上,而是由大量相对小的
领域
对象(类)组成,这些类具备自己的状态和行为,每个类是相对完整的独立体
DDD
开发案例 超市收银业务
领域
驱动
设计在互联网业务开发中的实践 本文作者是组内同事 杜宁,目前负责美团外卖活动管理模块业务。
高广超
2018-12-12
4.4K
0
标签:
其他
DDD
领域
驱动
设计初探
欢迎批评指正
DDD
强调
领域
模型要兼顾业务和技术两个视角。 我们怎么用一套系统化的方法,抽丝剥茧、一步一步地把需求落实到代码呢?咱们看看下面这张图,它表示了
领域
驱动
设计中的主要流程。 1
领域
驱动
设计主要的开发流程你可以看到,在整个开发流程中,首先是要捕获行为需求,也就是传统软件工程里的“获取需求”。 而
DDD
分层架构,通常说的是进程内架构。 然后就可以根据
领域
模型进行数据库设计,最后是代码实现。 这样,就形成了一个基于
DDD
的开发闭环。 数据库建表
DDD
主张要根据
领域
模型来进行数据库设计,保证数据库和
领域
模型的一致,从而保证数据库和业务需求以及代码的一致性。 5 衡量团队
DDD
水平 6 其他补充 其实对于
DDD
来说,是否使用充血模型,只是形式上的区别,关键在于一定要有识别出
领域
对象,和业务专家统一语言,这样就能无障碍沟通,然后慢慢把这个
领域
模型推广到整个系统
燃192
2023-04-10
824
0
标签:
ddd
领域驱动设计
模型
事件
系统
了解
DDD
领域
驱动
设计
,架构思想也清晰简单 难点:使用面向对象编程、对
领域
建模,牵扯到很多的新概念和方法论,在项目中使用需要经验 三层架构有什么可以吸取
DDD
的经验吗? 常见的编程范式包括面向对象编程、函数式编程、命令式编程等
DDD
(
领域
驱动
设计,Domain-Driven Design)应用架构:一种软件开发方法论,强调以业务
领域
模型为核心,通过
领域
模型紧密协作来构建复杂系统的架构
DDD
架构和三层应用架构对比 核心代码位置的不同 在
DDD
(
领域
驱动
设计) 中,需要将重点放在
领域
层(Domain Layer)进行业务逻辑和规则的实现。 三层架构中业务逻辑都堆积在 Service 层 编程范式的不同
领域
驱动
中使用了面向对象和 命令式编程两种方式 通过面向对象抽象
领域
模型 通过命令式编程,编排业务逻辑 三层架构中使用过程式编程(命令式编程 现在再来看这张
DDD
的典型架构图,你可能会更加理解
DDD
的思想内核,这是一种面向
领域
的设计方法,把
领域
层(业务规则)包在最里面,保护好边界,避免
领域
层被污染。
_春华秋实
2025-01-22
583
0
标签:
架构
领域
驱动
DDD
业务浅析
面向过程是对数据的执行流程 ,按照分支条件 ,模式匹配 进行设计面向对象 是对数据的功能,定义出发 重新组织数据,
ddd
的根基:通用语言和模型
驱动
的设计通用语言:这里的通用值得并不是技术
领域
的,而是技术
领域
和业务
领域
的通用语言 而
ddd
要求 先从
领域
中有哪些关键事件和结果出发;再从事件和结果出发 思考 做这个事情达成这个结果 要经历哪些行为哪些步骤;再去思考 这些步骤所涉及的概念实体有哪些。 这个步骤正好和面向对象的设计思想相反,面向对象针对的还是数据,但是
ddd
针对的是
领域
,
领域
会更加稳定。 2.模型
驱动
的设计:
ddd
的模型
驱动
设计:概念:模型
驱动
,在
ddd
里面的模型就是
领域
模型(一个个业务域),面向对象里面的模型就是对象模型。 组成:
领域
模型
驱动
设计,这里的设计有高层和底层设计,对应的就是战略设计和战术设计。我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!
北洋
2023-12-15
414
0
标签:
2023腾讯·技术创作特训营 第四期
领域
驱动
设计(
DDD
)实践
不能说微服务拯救了
领域
驱动
设计,但确实是微服务,让
领域
驱动
设计又重新焕发了青春。
DDD
过程
领域
驱动
设计是一套面对复杂业务进行建模和设计的方法论和实践,建立了以
领域
为核心
驱动
力的设计体系。
领域
驱动
设计分为 2 个主要过程:战略设计、战术设计 。 该阶段
领域
专家只专注于问题域而不是解决方案,业务和技术人员基于 UL 沟通,并且考虑投入产出比,团队只为核心业务进行
领域
驱动
设计并创建UL,订单系统为下单模块进行
DDD
,订单监控模块用普通的事务脚本方式来即可
领域
驱动
设计给出了
DDD
分层架构、六边形架构、整洁架构等分层架构,它们遵循“关注点分离”原则,旨在分离和隔离业务复杂度和技术复杂度,凸显了
领域
模型,保证了
领域
模型的稳定性和一致性。
领域
事件(Repository) 在 Eric 的《
领域
驱动
设计》中并没有提到
领域
事件,
领域
事件是最近几年才加入
DDD
生态系统的。
ruochen
2021-11-23
1.4K
0
标签:
系统架构
图像处理
架构设计
微服务
DDD
领域
驱动
设计实践
DDD
。
领域
驱动
设计分为两个阶段: 以一种
领域
专家、设计人员、开发人员都能理解的通用语言作为相互交流的工具,在交流的过程中发现
领域
概念,然后将这些概念设计成一个
领域
模型;由
领域
模型
驱动
软件设计,用代码来实现该
领域
模型 ; 由此可见,
领域
驱动
设计的核心是建立正确的
领域
模型。 )是
驱动
者,它驱使足球比赛
领域
中,各个“人”(参与者)的活动。 比如命令部分可以通过
领域
驱动
设计来实现;查询部分可以直接用最快的非面向对象的方式去实现,比如用SQL。
xcbeyond
2021-04-02
1.1K
0
标签:
uml
领域
驱动
设计 (
DDD
) 总结
DDD
简述
DDD
(Domain-Driven Design),即
领域
驱动
设计是思考问题的方法论,用于对实际问题建模,它以一种
领域
专家、设计人员、开发人员都能理解的通用语言作为相互交流的工具,然后将这些概念设计成一个
领域
模型 由
领域
模型
驱动
软件设计,用代码来实现该
领域
模型。所以,
DDD
的核心是建立正确的
领域
模型。 二. 图是表达
领域
模型最常用的方式,但并不是唯一的表达方式,代码、文字描述也能表达
领域
模型。 2.2 通用语言
领域
驱动
设计的一个核心的原则是使用一种基于模型的语言。 /pic/
DDD
经典分层结构.png)] 上图为经典的
领域
驱动
设计分层架构,图中
领域
层 (Domain) 的上层是应用层 (Application),下层是基础设施层 (Infrastructure), 上下文图 (Context Map) 参考地址:《【
DDD
】
领域
驱动
设计实践 —— 限界上下文识别》 9.1 上下文图类型 多个系统之间会发生关系,存在交互,这也必然会在各自的限界上下文有所表现。
剑影啸清寒
2020-07-15
4K
0
标签:
uml
微服务
访问管理
DDD
-
领域
驱动
设计
DDD
-
领域
驱动
设计 参考
DDD
的设计,
DDD
官方的架构草图,总体架构分为四层,Infrastructure(基础实施层),Domain(
领域
层),Application(应用层),Interfaces 在
领域
驱动
设计中根据重要性与功能属性将
领域
分为三类子域,分别是:核心子域、支撑子域和通用子域。决定产品和企业独特竞争力的子域是核心子域,它是业务成功的主要因素和企业的核心竞争力。 首先确定核心域,确定完核心子域后,根据对这个
领域
的理解划分出各个上下文,然后根据上下文再确定其他的相关
领域
。 用
DDD
走出设计微服务拆分困境 所谓的微服务拆分困难,其实根本原因是不知道边界在什么地方。 而使用
DDD
对业务分析的时候,首先会使用聚合这个概念把关联性强的业务概念划分在一个边界下,并限定聚合和聚合之间只能通过聚合根来访问,这是第一层边界。
分母为零
2019-08-13
1.4K
0
标签:
微服务
领域
驱动
设计(
DDD
)概念入门
,即
领域
服务
领域
事件:其它
领域
关心的发生在当前
领域
的事件 聚合:一组相关对象的集合,它是数据的修改单元,有自己的聚合根和边界,边界与事务的边界一致,即一个事务只修改一个聚合实例,边界外则一般考虑最终一致性 只为确实需要直接访问的聚合提供资源库,让客户能聚焦于模型 分层模型中使用
领域
驱动
设计
领域
驱动
设计不需要使用特定的架构,它可以应用于多种架构中,以分层模型为例,一个应用程序可以分成: 用户界面层:处理用户显示和用户请求 ,不包含任何
领域
和业务逻辑 应用层:很薄的一层,主要用于对
领域
对象的协调操作,如果使用ACID数据库,它还负责控制事务保证提交的原子性
领域
层:处理业务逻辑,并发布
领域
事件 基础设施层:持久化、消息通信机制等可以重用的基础设施 从而使得状态变更与决策放在展示层,与视图分开,比如某个组件是否可编辑可用true表示可以编辑,而false不可编辑,但是true/false的取值却是有展现层进行赋值 参考 Eric Evans演讲what is
DDD
Eric Evans演讲bounded context Eric Evans 书 <
领域
驱动
设计-软件核心复杂性应对之道> Vaughn Vernon 书 <实现
领域
驱动
设计> Martin Fowler
爬蜥
2022-03-09
1.2K
0
标签:
电商
领域
驱动
设计(
DDD
):
领域
接口化设计
所以我们要讨论的是全面接口化,尤其是对
领域
模型接口化的认识。
领域
接口化 通常的情况下我们会把
领域
模型设计成类(class),但是你有没有想过把
领域
模型设计成接口(interface)? 具体来说是在持久层使用持久化对象(PO)与
领域
对象(DO)的之间进行转换。 再过去单机和集群项目与微服务项目是不能兼容的,因为
领域
模型都是类(class)而不是接口(interface)。
领域
模型采用
领域
驱动
设计(
DDD
)、接口化以及面向对象设计。 总结
领域
对象接口化使得我们在内部实现了一套统一的接口,并将
领域
对象接口化扩展到系统级别时,我们又在系统层次上设计出一套统一地全局接口来开发业务和应对未来变化的环境。
架构之家
2022-07-12
1K
0
标签:
uml
微服务
spring
java
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档