Fork me on GitHub
领域驱动设计(DDD)
摘要: 废话不多说了,本文的目的是希望通过一个“银行转账”的例子来和大家分享一些我最近学习到的关于如何组织业务逻辑的心得和体会。当然,本人的能力和领悟有限,如有不正确之处,还希望各位看官能帮我指出来。我始终坚持一个信念,没有讨论就没有进步,任何一个非盈利为目的的人或组织始终应该把自己所学的知识共享出来与人讨论,这样不管对自己或对他人或对整个社会都大有好处。因为一个人的知识毕竟是有限的,但可以(并且也只能)和别人相互沟通交流学习来弥补这个缺陷。银行转账的核心业务逻辑大家应该都很熟悉了,主要有这么几步: 源账户扣除转账金额,当然首先需要先判断源账户余额是否足够,如果不够,则无法转账; 目标账户增加转账金额阅读全文
posted @ 2011-04-17 21:53 netfocus 阅读(136) | 评论 (2) 编辑
摘要: 前面一篇文章介绍了我设计的基于“事件”驱动的领域模型的基础框架的设计起因和设计思路。基于这个框架,我们领域模型中的所有领域对象有如下几个特点:任何一个领域对象是“活”的,它不仅有属性(对象的状态),而且有方法(对象的行为)。为什么说是“活”的呢?因为领域对象的行为都不是被另外的领域对象调用的,而是自己去响应一些“事件” ,然后执行其自身的某个行为的。在我看来,如果一个领域对象的方法是被其他的领域对象调用的,那这个对象就是“死”的,因为它没有主动地去参与到某个活动中去。这里需要强调的一点是,领域对象只会更新它自己的状态,而不会更新其他领域对象的状态。所有的领域对象之间都是平等的,任何两个领域对象阅读全文
posted @ 2011-04-03 23:30 netfocus 阅读(1120) | 评论 (1) 编辑

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

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

摘要: 前一篇文章中,我谈到了领域驱动设计中,关于ORM工具该如何使用的问题。谈了很多我心里的想法,大家也对我的观点做了一些回复,或多或少让我深深感觉到面向对象设计和领域驱动设计是两个不同层次的东西。你会面向对象并不代表你就会面向领域设计。后来,我无意中发现了一个网站,http://www.jdon.com,这个网站中所包含的知识在我看来非常深入,而且基本上都包含了现在一些最新的设计思想。我看了几篇文章后渐渐感觉到领域驱动设计并不是我想象中那么简单。其实学技术,学框架并不是太难,只要你肯花时间就一定能慢慢领悟。但要学会领域建模,我现在觉得非一朝一夕就能学会。好了。接下来还是回到我今天晚上的这篇文章的主阅读全文
posted @ 2010-12-25 00:34 netfocus 阅读(1544) | 评论 (9) 编辑

摘要: 最近一直对DDD(Domain Driven Design)很感兴趣,于是去网上找了一些文章来看看,发现它确实是个好东西。于是我去买了两本关于领域驱动设计的书本和一本企业应用架构模式的书。看了之后也掌握了一些理论基础。但总感觉需要通过做一个实际项目来测试自己所学到的知识。因为以前我开发过一个叫做“蜘蛛侠论坛”的网站,官方演示地址:http://www.entityspider.com/,但在我学习了DDD之后,才明白原来之前我所做的设计是贫血模型+事务脚本的设计方法。这种设计方法有很多不足,最大的不足就是业务逻辑不能重用,业务逻辑没有组织为一个可重用的自阅读全文
posted @ 2010-12-20 23:17 netfocus 阅读(1888) | 评论 (20) 编辑
posted on 2011-04-17 23:03  HackerVirus  阅读(661)  评论(0编辑  收藏  举报