2014年1月10日

[0] EDA事件总线

摘要: [0] 事件总线 阅读全文

posted @ 2014-01-10 16:46 范兵 阅读(260) 评论(0) 推荐(0) 编辑

[转] DDD领域驱动设计(三) 之 理论知识收集汇总

摘要: 最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下:我一直觉得不要盲目相信权威,比如不能一谈起领域驱动设计,就一定认为国外的那个Eric Evans写的那本书中的一些概念就一定是正确的,认为领域驱动设计就一定是聚合,聚合根,实体,值对象等概念。我们要有自己的思想,要有自己判断真正的领域模型该是什么样子的勇气和追求。"领域驱动设计" = “问题域模型驱动领域建模” + “领域建模驱动软件实现”问题域建模的过程就是业务领域分析的过程,对于企业而言就是业务架构的分析和建立过程,这里不包含任何OO的设计成分,主要从组织、流 阅读全文

posted @ 2014-01-10 16:43 范兵 阅读(299) 评论(0) 推荐(0) 编辑

[0] DCI架构

摘要: [0] DCI架构 阅读全文

posted @ 2014-01-10 16:42 范兵 阅读(307) 评论(0) 推荐(0) 编辑

[0] EDA事件驱动架构

摘要: [0] EDA事件驱动架构 阅读全文

posted @ 2014-01-10 16:37 范兵 阅读(211) 评论(0) 推荐(0) 编辑

[转] (CQRS)命令和查询责任分离架构模式(二) 之 Command的实现

摘要: 概述继续引用上篇文章中的图片(来源于Udi Dahan博客),UI中的写入操作都将被封装为一个命令中,发送给Domain Model来处理。我们遵循Domain Driven Design的设计思想,因此所有的业务逻辑都只在Domain Model中处理,Command中将不会带有业务逻辑。Command中的代码无非是通过Repository获取某些个聚合根(Aggregate Root),然后将操作委托给相应的领域对象或领域服务来处理,仅此而已。实现实现上,我们会涉及三个东西:(1) Command对象Command对象的作用是用来封装命令数据,所以这类对象以属性为主,少量简单方法,但注意这 阅读全文

posted @ 2014-01-10 16:18 范兵 阅读(591) 评论(0) 推荐(0) 编辑

[0] DDD领域驱动设计(三) 之 聚合(根)、实体、值对象

摘要: 1.聚合根、实体、值对象的区别?从标识的角度:聚合根具有全局的唯一标识,而实体只有在聚合内部有唯一的本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象的说法;从是否只读的角度:聚合根除了唯一标识外,其他所有状态信息都理论上可变;实体是可变的;值对象是只读的;从生命周期的角度:聚合根有独立的生命周期,实体的生命周期从属于其所属的聚合,实体完全由其所属的聚合根负责管理维护;值对象无生命周期可言,因为只是一个值;2.聚合根、实体、值对象对象之间如何建立关联?聚合根到聚合根:通过ID关联;聚合根到其内部的实体,直接对象引用;聚合根到值对象,直接对象引用;实体对其他对象的引用规则:1)能引用其所 阅读全文

posted @ 2014-01-10 15:52 范兵 阅读(3254) 评论(0) 推荐(0) 编辑

[0] DDD领域驱动设计(二) 之 值对象

摘要: DDD中实体对象与值对象的解释比较抽象。主要根据持续性与 ID 识别来区分。 ID并非某一对象的直观自然属性,而是在分析建模之 后,赋给模型中的实体类,来达到跟踪,区别,存储目的的一个特值。结合项目实践及 DDD一书中的理论,感觉应该从以下几方面分析:1.主从:某一概念是主动还是从属性的,如果是从属性的,且这种 从属性的生命周期严格依赖于某实体,如可以考虑成为值对象的候 选。 2. 复用:某一概念是否可以被复用,共享,复制。象对应领域属性, 规格,策略,规则的类,虽然对其他实体类的依赖性不是很强,可以 独立存在。可以被不同的实体对象(不是指类)共享,复制,复用。 如人的地址属性,画笔的颜色字体 阅读全文

posted @ 2014-01-10 15:49 范兵 阅读(1798) 评论(0) 推荐(0) 编辑

[转] DDD领域驱动设计框架分享

摘要: 从去年10月份开始,学了几个月的领域驱动设计(Domain Driven Design,简称DDD)。主要是学习领域驱动设计之父Eric Evans的名著:《Domain-driven design:领域驱动设计:软件核心复杂性应对之道》,以及另外一本Martin Flower的《企业应用架构模式》,学习到了不少关于如何组织业务逻辑方面的知识。另外,在这个过程中也接触到了一些开源的架构和一些很好的思想。如:命令查询职责分离(Command Query Responsibility Segregation,简称CQRS),事件驱动架构(Event Driven Architecture,简称ED 阅读全文

posted @ 2014-01-10 15:28 范兵 阅读(558) 评论(0) 推荐(1) 编辑

[转] SOLID五大设计原则

摘要: 我们知道,面向对象对于设计出高扩展性、高复用性、高可维护性的软件起到很大的作用。我们常说的SOLID五大设计原则指的就是:S = 单一职责原则 Single Responsibility PrincipleO = 开放闭合原则 Opened Closed PrincipleL = Liscov替换原... 阅读全文

posted @ 2014-01-10 15:15 范兵 阅读(617) 评论(0) 推荐(0) 编辑

[转] 面向对象原则之GOF是招式,九大原则才是精髓

摘要: 只有到了一定层次后才会真正的深入体会到面向对象的一些知识点啊! 不谈具体程序,谈的是你对软件的理解模式:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。“模式”这个词是不局限于软件开发行业的,它几乎无处不在,它其实就是一种经验的积累,就象大多数人的教育经历都是从小学到初... 阅读全文

posted @ 2014-01-10 15:14 范兵 阅读(371) 评论(0) 推荐(0) 编辑

[转] (CQRS)命令和查询责任分离架构模式(一) 之 什么是CQRS

摘要: 什么是CQRS?这个问题网上可以找到很多资料,未接触过的童鞋请先查看Udi Dahan,Grey Young,Rinat Abdullin,园子里dax.net,以及Jdon社区上的相关文章。例如下面几篇文章:1.http://www.cnblogs.com/daxnet/archive/2011/01/06/1929099.html1.http://www.udidahan.com/2009/12/09/clarified-cqrs/2.http://www.jdon.com/jivejdon/thread/37891这里只通过Udi Dahan的《Clarified CQRS》文章中的一张 阅读全文

posted @ 2014-01-10 13:19 范兵 阅读(629) 评论(0) 推荐(0) 编辑

[0] 四色原型

摘要: 1.四色原型1.1.时刻-时段原型(Moment-IntervalArchetype)表示事物在某个时刻或某一段时间内发生的。使用红色表示。简写为MI。1.2.描述原型(DescriptionArchetype)表示资料类型的资源,它可以被其它原型反复使用,并为其它原型提供行为(用作方法的参数)。使... 阅读全文

posted @ 2014-01-10 13:18 范兵 阅读(480) 评论(0) 推荐(0) 编辑

导航