![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DDD
文章平均质量分 79
疯狂翻滚的石头
这个作者很懒,什么都没留下…
展开
-
领域驱动设计在互联网业务开发中的实践
至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD)。在互联网开发“小步快跑,迭代试错”的大环境下,DDD似乎是一种比较“古老而缓慢”的思想。然而,由于互联网公司也逐渐深入实体经济,业务日益复杂,我们在开发中也越来越多地遇到传统行业软件开发中所面临的问题。本文就先来讲一下这些问题,然后再尝试在实践中用DDD的思想来解决这些问题。过度耦合业务初期,我们的功能大都非常简单,普通的转载 2020-11-03 10:21:33 · 551 阅读 · 0 评论 -
DDD 领域驱动设计学习(五)- 实体/值对象/领域服务
领域驱动设计DDD在战术建模上提供了一个元模型体系(如下图):元模型往往用来在某一特定的领域定义一个基础的通用的语言,来讨论和描述该领域的问题及解决方法。可以将元模型想象成为某种形式语言,这样模型就是一篇用该语言描述的文章,其中元模型中的元素就是该语言的词汇,元素之间的关系就是该语言的语法。元模型的例子其实很多,例如交通指示标志就定义了一种非常简单的交通规则的元模型。DDD的元模型图也是用于描述如何去创建一个DDD的模型。DDD的战术阶段实际就是这样一个抽象过程。这个抽象过程由于元模型的存在实际是一定转载 2020-09-25 14:40:44 · 1811 阅读 · 0 评论 -
DDD 领域驱动设计学习(四)- 架构(分层/六边形/RESTful)
DDD方法中并没有指定使用特定的架构。领域中的BC被封装为高内聚的模块,这种特性让DDD对架构并没有太大侵入性。架构可以应用于领域内部的结构,也可以包围着领域模型,系统中可以采用多种风格的架构。架构是指构成一个系统的主要元素及它们之间的主要关联,这些元素和关联能够反映该系统的本质特征。选择架构应该了解架构的来源和所要解决的问题,从业务和问题出发,避免滥用架构。例如分布式应用的架构有REST、DO(分布式对象)和RPC,REST架构是Web风格的架构,而DO和RPC是面向企业应用的,技术和架构也不是一转载 2020-09-25 11:21:02 · 1046 阅读 · 0 评论 -
DDD 领域驱动设计学习(三)- 领域事件
领域事件(Domain Event)在Eric的《领域驱动设计》中并没有提到领域事件,领域事件是在后来才被正式提出来的,并成为DDD通用语言(UL)的正式组成部分。领域事件(DE)是什么?领域事件的作用又是什么?介绍领域事件的书籍和文章也比较多了,本文最后也推荐了几篇很好的文章。写这篇文章更希望多思考一下自己的一些疑问,一个是为什么要用领域事件?领域事件和一般事件驱动的区别是什么?顺便也想理一下Event相关的几个概念和工具。领域事件是什么在《实现领域驱动设计》一书中对领域事件的定义如下:领域专转载 2020-09-24 14:37:48 · 796 阅读 · 0 评论 -
DDD 领域驱动设计学习(二)- 限界上下文
12/9-DDD中国峰会部分文章节选DDD不是架构,而是一种方法论(Methodology)。根据维基百科:Methodology is the systematic, theoretical analysis of the methods applied to a field of study,DDD正是针对软件领域提供的系统与理论分析方法。Eric在创造性地提出DDD时,实则是针对当时项目中聚焦在Data(主要是DB Schema)为核心的系统建模方法的批判。这种面向数据的建模方式无法应对日渐复杂的转载 2020-09-23 19:24:56 · 707 阅读 · 0 评论 -
阿里盒马领域驱动设计实践
作者:张群辉发布于:2018 年 1 月 21 日 17:00前言设计是把双刃剑,没有最好的,也没有更好的,而是条条大路到杭州。同时不设计和过度设计都是有问题的,恰到好处的设计才是我们追求的极致。DDD(Domain-Driven Design,领域驱动设计)只是一个流派,谈不上压倒性优势,更不是完美无缺。 我更想跟大家分享的是我们是否关注设计本身,不管什么流派的设计,有设计就是好的。从我看到的代码上来讲,阿里集团内部大部分代码都不属于 DDD 类型,有设计的也不多,更多的像“面条代码”,从端上一转载 2020-09-15 11:14:44 · 364 阅读 · 0 评论 -
领域驱动设计实现之路
2004 年,当 Eric Evans 的那本《领域驱动设计——软件核心复杂性应对之道》(后文简称《领域驱动设计》)出版时,我还在念高中,接触到领域驱动设计(DDD)已经是8 年后的事情了。那时,我正打算在软件开发之路上更进一步,经同事介绍,我开始接触DDD。我想,多数有经验的程序开发者都应该听说过DDD,并且尝试过将其应用在自己的项目中。不知你是否遇到过这样的场景:你创建了一个资源库(Repository),但一段时间之后发现这个资源库和传统的DAO 越来越像了,你开始反思自己的实现方式是正确的吗?或者转载 2020-09-18 17:15:23 · 257 阅读 · 0 评论 -
DDD 领域驱动设计学习(一)- 领域模型和统一语言
1. DDD是什么?解决什么问题?1.1 软件开发的困境“随着业务的扩展,软件开发投资越来越大” 团队的规模也开始变得越来越大,软件系统的投资和维护的成本变得越来越高。“业务人员不懂架构,架构师不懂代码,开发人员不不懂业务模型” 当团队中的关键角色谁也不懂谁的时候,问题来了。。。“重构是好的,但什么时候要重构?重构到什么样的架构就是够⽤的了?” 每个有追求的团队都在做重构,但管理者更关心,什么时间必须要重构?重构的目标在哪?1.2 DDD的来源及简介2004年Eric Evans 发表Domai转载 2020-09-21 16:41:18 · 1429 阅读 · 0 评论