文章分类 -  领域模型

摘要:摘要: 阿里巴巴前架构师对于微服务毫无保留的分享,360 度无死角剖析微服务 微服务是当前软件架构领域非常热门的词汇,在社区中也有很多热烈的讨论。因此,在 OSC 第 130 期高手问答中,我们策划的主题是“究竟什么才是微服务”,并邀请了黄勇作为高手嘉宾。 黄勇,现任特赞公司 CTO,曾任阿里巴巴公 阅读全文
posted @ 2017-05-25 18:58 傳奇 阅读(216) 评论(0) 推荐(0) 编辑
摘要:消息场景:用户 A 发送一个消息给用户 B,用户 B 回复一个消息给用户 A。。。 现有设计:消息设计为实体并为聚合根,发件人、收件人设计为值对象。 三个问题: 1. 实体最重要的特性是什么? 《领域驱动设计》5.2 实体: 摘录一段:许多对象不是由它们的属性来定义,而是通过一系列的连续性(cont 阅读全文
posted @ 2017-05-24 15:21 傳奇 阅读(242) 评论(0) 推荐(0) 编辑
摘要:1. 聚合根、实体、值对象的区别? 从标识的角度: 聚合根具有全局的唯一标识,而实体只有在聚合内部有唯一的本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象的说法; 从是否只读的角度: 聚合根除了唯一标识外,其他所有状态信息都理论上可变;实体是可变的;值对象是只读的; 从生命周期的角度: 聚 阅读全文
posted @ 2017-05-24 10:36 傳奇 阅读(158) 评论(0) 推荐(0) 编辑
摘要:《实现领域驱动设计》前两章内容,基本上读完了,和《领域驱动设计》不同的是,它把很多的概念都放在前面进行讲述了,比如领域精炼、界限上下文等等,在《领域驱动设计》中,是很靠后的内容,不过这样也好,可以让你从一个大局的视角去看待问题,由广到细的思路学习,我觉得也蛮好的。另外,随着一点一点的学习,你会发现, 阅读全文
posted @ 2017-05-22 20:02 傳奇 阅读(256) 评论(0) 推荐(0) 编辑
摘要:摘要: DDD是一种设计思想,它本身不绑定到任何一种具体的架构风格,可以应用在多种不同的架构风格中。本文探讨在经典的分层架构中如何应用DDD,以及在DDD的语境下,分层结构每一层的具体职责。 DDD是一种设计思想,它本身不绑定到任何一种具体的架构风格,可以应用在多种不同的架构风格中。本文探讨在经典的 阅读全文
posted @ 2017-05-22 15:46 傳奇 阅读(1208) 评论(1) 推荐(1) 编辑
摘要:软件开发要干什么: 反映真实世界要自动化的业务流程 解决现实问题 领域Domain Domain特指软件关注的领域 在不能充分了解业务领域的情况下是不可能做出一个好的软件 领域建模 领域模型驱动设计 } 分层架构 } 实体 } 值对象 } 服务 } 模块 } 聚合 } 工厂 } 资源库 分层架构: 阅读全文
posted @ 2017-05-22 14:08 傳奇 阅读(373) 评论(0) 推荐(0) 编辑
摘要:我们知道,在领域设计中,划分为三种模型,分别为:实体(Entity)、值对象(Value Object)、和服务(Service)。其中Service与我们传统设计中的Service有什么不同呢?让我们来回忆一下,通常我们针对将读写xml、资金转账等代码放在service中,可以看出,该层包括了两种 阅读全文
posted @ 2017-05-22 11:24 傳奇 阅读(394) 评论(0) 推荐(0) 编辑
摘要:在引入实例以前,我们有必要回顾,并进一步了解分层架构。“层”是一种体系结构模式[POSA1],也是被广大软件从业人员用得最为广泛而且最为灵活的模式之一。记得在CSDN上,时常有朋友问到:“分层是什么?为什么要分层?三层架构是不是就是表现层、业务逻辑层和数据访问层?” 到这里,你可能会觉得这些朋友的问 阅读全文
posted @ 2017-05-22 11:10 傳奇 阅读(120) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://www.cnblogs.com/xishuai/p/iddd-domain-and-subdomain.html 在《实现领域驱动设计》第二章的前半部分内容中,提到领域和子域的概念,并且作者把这两者又进行了细致的区分,其实在《领域驱动设计》书中,也有进行详细说明,只不过是在第 阅读全文
posted @ 2017-05-18 09:27 傳奇 阅读(147) 评论(0) 推荐(0) 编辑
摘要:领域驱动设计之领域模型 加一个导航,关于如何设计聚合的详细思考,见这篇文章。 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Software (领域驱动设计),简称Evans DDD。领域驱动设 阅读全文
posted @ 2017-05-17 16:21 傳奇 阅读(139) 评论(0) 推荐(0) 编辑
摘要:从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决。 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品。所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的。 再比如,我是一家互 阅读全文
posted @ 2017-04-01 14:27 傳奇 阅读(137) 评论(0) 推荐(0) 编辑
摘要:聚合以及聚合根是领域驱动设计中的重要概念,根据定义,聚合是针对数据变化可以考虑成一个单元的一组相关的对象。聚合使用边界将内部和外部的对象划分开来。每个聚合有一个根。这个根是一个实体,并且它是外部可以访问的唯一的对象。根可以保持对任意聚合对象的引用,并且其他的对象可以持有任意其他的对象,但一个外部对象 阅读全文
posted @ 2017-03-24 15:49 傳奇 阅读(255) 评论(0) 推荐(0) 编辑
摘要:领域驱动设计之聚合与聚合根 对实体与值对象等进行关联设计后,就应该进行聚合的划分以及聚合根的确定。 首先我们需要明确为什么需要进行聚合的划分? 原来我们的系统对领域划分的最小单位通常是模块,比如客户信息管理模块、雇员信息管理模块。但模块的划分对于设计来说,还是显得粒度太粗。 一.聚合与聚合根 1.定 阅读全文
posted @ 2017-03-24 15:43 傳奇 阅读(195) 评论(0) 推荐(0) 编辑
摘要:1. 聚合根、实体、值对象的区别? 从标识的角度: 聚合根具有全局的唯一标识,而实体只有在聚合内部有唯一的本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象的说法; 从是否只读的角度: 聚合根除了唯一标识外,其他所有状态信息都理论上可变;实体是可变的;值对象是只读的; 从生命周期的角度: 聚 阅读全文
posted @ 2017-03-24 14:55 傳奇 阅读(140) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/dirichlet/archive/2010/11/27/1889709.html 最近taowen同学连续发起了两起关于贫血模型和领域模型的讨论,引起了大家的广泛热烈的讨论,但是讨论(或者说是争论)的结果到底怎样,我想值 得商榷。问题是大家对贫血 阅读全文
posted @ 2017-03-23 16:45 傳奇 阅读(112) 评论(0) 推荐(0) 编辑
摘要:在我们应用OO进行分析设计的时候,又提出了贫血和充血的概念.并产生了很大的争论.结合DDD,在这里,我也谈谈我的想法。1.贫血模式说白了就是把对象看成是数据的载体.因为它不存在实际的操作动作,只是各种数据的集合.从这个角度,尽管我们设计出来了对象.实质上我们只是在过程式开发模式(没有用OO语言的时候 阅读全文
posted @ 2017-03-23 15:08 傳奇 阅读(1822) 评论(0) 推荐(0) 编辑
摘要:Martin Fowler很早以前就写过一篇文章,题目叫”贫血模型”。文章里面批判贫血的领域模型是不够优雅、不够OO的,提倡使用充血的领域模型。在Java世界里这是一直争论的话题。到底什么是贫血什么是充血呢? 贫血模型 贫血模型:是指领域对象里只有get和set方法,或者包含少量的CRUD方法,所有 阅读全文
posted @ 2017-03-23 15:00 傳奇 阅读(256) 评论(0) 推荐(0) 编辑
摘要:领域模型 领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。 业务对象模型(也叫领域模型 domain model)是描述业务用例实现的对象模型。它是对业务角色和业务实体之 阅读全文
posted @ 2017-03-23 14:46 傳奇 阅读(184) 评论(0) 推荐(0) 编辑
摘要:为了补大家的遗憾,在此总结下ROBBIN的领域模型的一些观点和大家的补充,在网站和演讲中,robbin将领域模型初步分为4大类: 1,失血模型 2,贫血模型 3,充血模型 4,胀血模型 那么让我们看看究竟有这些领域模型的具体内容,以及他们的优缺点: 一、失血模型 失血模型简单来说,就是domain 阅读全文
posted @ 2017-03-23 14:08 傳奇 阅读(275) 评论(0) 推荐(0) 编辑