jdon007
2011-07-12 22:11

看了你在博客园的文章,有些一些略微不同的看法,那边没有账号,就在这里说说。

1)图书卡是借书工具,自动记录(或辅助记录)借阅史,其原始的形式是笔和纸。如果卡没有名字,还会觉得卡是用户的映射?一些场所有贵宾卡之类的,是可以不署名的,只要肯出钱买就行了。

2)图书卡和图书馆一样,在图书管这个领域中就是为“书的借阅”而生,其行为是他们天生的职责或领域赋予他们的固有职责,无需扮演,或所谓本色出演。(PPT = Role)

3)角色是一个不错的概念,但也不宜过分使用。像DCI的那个例子中,将银行账号分为源帐号角色和目标帐号角色,我个人认为这有点过了,虽然这是DCI理论的提出者举的例子。在银行领域中,账号本来就是可以存钱和取钱的。按照这个思路,图书卡,也要分为两种角色,一个是借书卡的角色,一个是还书卡的角色,书也分为两种角色,被借的书,被还的书。那岂不是自找没趣。

4)角色表达的是实体在场景约束下承担的职责,模型表达的是实体在领域约束下的承担的职责。如果还记得大学的政治经济学,可以把实体理解为商品,角色体现使用价值(社会属性/场景约束下的职责),模型体现价值(自然属性/领域约束下的职责)。

5)领域已经为身在其中的所有实体或事物界定一些固有的职责,这些职责分配到模型中,这是领域存在的根本,没有了这些,也就无所谓领域不领域了。在领域中,模型依赖场景而承担新的职责,才考虑分配在角色中。

6)在这个小小的例子中,似乎只有书在不同的场景才有新增的属性。藏书时,借阅时,购新书时,有差异,且是有依赖场景的。

注:banq注意一下,我在这个帖子发的帖子,怎么会跑到uda1341发的帖子上去,而且我要删除或编辑那个帖子也不行,只能在这个帖子说明了。看看是什么问题,可能的话,帮我删除,毕竟与uda1341帖子讨论的内容无关。

[该贴被jdon007于2011-07-12 22:13修改过]

tangxuehua
2011-07-12 22:13

没想到我在博客园写的文章被你看到了呀,献丑了,呵呵。

jdon007,什么时候我才能达到你这样的领悟境界呢?我写那篇文章之前已经做了非常多的学习和不停的反复思考,并且还花了非常多的时间开发基于C#实现的DCI基础架构,同时开发一个可以让领域模型和外界交互的事件框架,这样我就可以让领域模型不需要Repository了。总之,自我感觉还挺良好的,但被你上面发表的回复后,我发现我还有很多东西好像还没抓住本质,1)对职责到底该属于领域对象还是属于场景角色的还是不能很好的分析出来;2)对如何分辨和发现新的角色还是不能把握好一个度;关于你提到的模型的价值、使价值,自然属性、社会属性,似乎提醒了我!

我在想关于分析职责该属于对象还是角色的问题上,是否真的有大家都认同的观点呢?之前我看到你和SpeedVan的关于图书卡的问题上的精彩讨论让我受益匪浅,但容易也让我觉得为什么这么一个看似简单的问题都这么难达成一致,尤其是在富有经验的开发者之间,那我真的不敢想象在一个真正的大型具有复杂领域逻辑的系统业务分析时,我们如何达成一个统一的,结合DDD和DCI思想的领域模型呢?

话说到这个份上,我感觉其中的意境和思想已经无法再讲的更清楚了,一切都要靠自己多实践,多思考吧。我要走的路还很远,希望能有一天能达到你们这些高手的水准。

jdon007
2011-07-12 22:57

见笑了,论计算机技术本身,你肯定比我好得多,我顶多算个软件开发队伍的杂牌兵,其他一些人才可能是真的技术高手,如uda1341,banq等。

面对复杂的业务时,大家都求真务实的话,在核心认识可能达成一致,总的来说,我也感觉非常难,除问题本身,问题之外也有很多东西不好解决。职责分配的依据,最好与事实或现实吻合,如果可能的话。

你很认真,也乐于思考与分享,这很难得。

SpeedVan
2011-07-13 09:38

和谐的气氛不错~其实只要肯想,肯思考,哪怕走上不同的路,肯定都是有深度的。

算我多嘴吧,又把话题挑起:关于jdon007说的第一点,我对“卡,其原始的形式是笔和纸”这样的观点是严重不同意的,也就是根本分歧点。现实中,卡并不用作记录历史记录,它只记录一个卡号,该卡能借书,是因为授权(间接授权,卡指定一个授权的人)。若果把卡作为原始的形式,则此卡非彼卡了。其实很好理解,卡丢了我的信息还有没有?卡是指定我,还是代表我?当然每个人的认识都于自身认识相关,到底卡指人,还是卡代人,看着领域办吧。

jdon007的其他观点有独特的见解,我也正在吸纳中。其实也不必过谦,我对banq、xmuzyu、jdon007、flyzb、uda1341、showerxp(顺序不代表能力,只是大概代表我认识过程)等的帖子都平等对待的。只有不仰头不低头,才能把对方的观点看清楚。发现闪亮点将其学习,正是交流的根本目的。

其实难以统一根本原因在于对事物认识的不同。一种情况是对着不同的事物,另一种情况是对着同一事物也有不同见解。认识对现实吻合是最难的一件事,正因为,我们从一开始并不知道到底谁是事实,所以就需要掌握大量的领域知识来判断。

achilleswar
2011-07-13 09:48

2011年07月11日 11:14 "@SpeedVan"的内容
你不要太纠结于字眼或思考概念时(如Place)局限于某个例子,例子提供了一个思想的跑马场,但不意味着思想只能在这个跑马场跑,在广阔的草原上(生活和自然中)自由奔驰岂不更惬意?

不过,好像只有纠结了,才知道什么不是纠结,整个人的思维不掉 ...

精彩。

6Go 上一页 1 2 3 4 5 ... 6 下一页