`
iamlotus
  • 浏览: 108098 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

DDD思考之四 不要买椟还珠

阅读更多

最近比较忙,陆陆续续才把DDD的书看完,自己的一个Demo也没有时间深化下去作,用的是我最鄙视的“learning without practise”方法。

不过这也是有情可原的,因为这本书后面大部分讲的都是方法论的东西,实际上,一共16章,只有前面7章说的是被热议的Entity/VO/Repository/Factory等实践,后面的篇幅都在讲项目中如何维护Domain的可用、可理解、可维护。这些原本就没法在一个简单的demo中实践。

通观全书,在Evans的DDD中,用什么方式构建Domain属于“术”的范围,而如何在项目的生命周期中维护Domain才是“道”。术,容易在Demo中体现,也容易搭个框架,引进几个interface和abstract class来实现;由于这些东西是业务无关的,所以容易在程序员讨论中引起共鸣,也才会有那么多人热衷于讨论DDD和OR-mapping的关系,entity是不是可以应该访问repository等问题。而“道”是指如何抽象,维护 core domain,如何让core domain和 subdomain,其他团队乃至其他系统的交互更自然,更实际。这就很考业务了:只有对业务有正确的理解,才能引导domain expert通过纷繁复杂的描述,提取出domain乃至 core domain;只有对业务的未来发展有正确的预期,才能评估每一个功能应该放在系统的什么位置。

后半部分的“道”在mini book中完全没有提到,不知道编者出于什么考虑。实际上单就实现而言,DDD的这些概念相对于传统的贫血模型和DAO也许更“美”一些,但未必就能吸引项目组去使用。只有把眼光放到项目的整个生命周期中,DDD所倡导的自描述模型,通用语言才能显示出其优点。换句话说,对于3个月的小外包,看不出DDD的必要。但一个500强要用上10年的核心系统,DDD(用的好的话)就能体现出其优势了。而所谓的道,讲的也就是这样的系统演化过程中如何取舍和维护。

所以,如果只看mini book和 ddd sample,对于DDD真是买椟还珠了。DDD不仅仅是充血模型,正如EJB不仅仅是session bean一样。

0
2
分享到:
评论
4 楼 iamlotus 2011-04-25  
好吧,我想我已经明白你的意思。
你的意见我基本都同意,尤其是关于DDD(也包括TDD)的人员要求,他们原本就不是为了让靠在SSH上拼SQL的人用的。
不过用户啥都不管也是有的,如果你做过政府的工程就知道了。
3 楼 redhat 2011-04-25  
iamlotus 写道

项目什么时候会“面向OOP高端人才”了? 项目都是客户导向的,客户管你是DDD,TDD还是什么DD,能按时按量提交就行。尤其是小外包,钱货两清,你连领域专家的面的见不到,还谈什么领域?难道你认为领域是从外包文档里读出来的?

我感兴趣的是这“一个月能搞完的项目”中间有多少和领域专家的交互,有多少在交互中发现已有模型的不足,有多少针对这些不足进行重构,最后精炼的模型和一开始的理解有多大的差距。你能说一下吗?


不管是XP还是DDD,都是Agile的一种实现,都强调用户/领域专家的参与,当然用户和领域专家的参与是有区别的。用户在一定时间内要东西出来,完全是正确的,但是用户想在开发过程中跟个傻子一样啥也不管,啥也不知道,这样的用户我至今没有碰到,不知道你碰到了几个。用户!=一个用户经理一时的冲动不能完全表达意思的几句话。 这也是为什么“难道你认为领域是从外包文档里读出来的”,这个你完全不知道这样和领域专家与用户打交道,消化知识中,就告诉你,没有明显的完整的领域模型摆在你没钱,你读两下文档就懂了领域,除非你在这个领域已经很多年了。

不管你感兴趣的是一个月搞完项目还是半年搞完项目,你的团队完全由低级的,只会使用函数,不会设计,没有抽象能力的人员,那么使用DDD不可能完成的。如果你的人员OOP能力很强,对于复杂项目(不一定化的时间多,但是你们一个月的项目),DDD都是上选。我曾经做一个很简单的项目,别人两个人2个月没解决的问题,我花了4天把它搞定,这个从时间上不恩能说明任何问题。

做项目,不能臆想用户怎么变态/怎么不合理,只会要求你们一天内把1年的事干完了,我至少没有碰到,碰到的最多的是我们开发人员昂着高傲的头告诉用户,这个我们设计/后台/框架就是这样,你们的需求我们没办法完成,这是一种侮辱。
2 楼 iamlotus 2011-04-25  
redhat 写道
“对于3个月的小外包,看不出DDD的必要。”
不同意你的说法,这个主要与人员的素质和领域的复杂度有很大关系,如果你想面向低端会使用函数的编程人员,不管项目大小,都是用贫血比较容易理解,如果你的项目想面向OOP高端人才,建议你使用DDD,不管项目大小。
我做了一个项目,核心我写了3天,后来加上维护一共一个月,当然构建这个我们之前做准备大概2-3个月。现在回想起来,没有DDD和OOP,就不可能在那么短时间完成它。
另外,那本书相关章节我看了3-4遍,不管哪一遍下来,我从来不觉得它是讲“Entity/VO/Repository/Factory等实践”。我的心得是,它是讲如何消化领域知识,如何根据消化构建出精炼的模型,并注意中间的风险(要联系实现技术等,大型系统模型维护问题),解决复杂领域的问题。


项目什么时候会“面向OOP高端人才”了? 项目都是客户导向的,客户管你是DDD,TDD还是什么DD,能按时按量提交就行。尤其是小外包,钱货两清,你连领域专家的面的见不到,还谈什么领域?难道你认为领域是从外包文档里读出来的?

我感兴趣的是这“一个月能搞完的项目”中间有多少和领域专家的交互,有多少在交互中发现已有模型的不足,有多少针对这些不足进行重构,最后精炼的模型和一开始的理解有多大的差距。你能说一下吗?
1 楼 redhat 2011-04-23  
“对于3个月的小外包,看不出DDD的必要。”
不同意你的说法,这个主要与人员的素质和领域的复杂度有很大关系,如果你想面向低端会使用函数的编程人员,不管项目大小,都是用贫血比较容易理解,如果你的项目想面向OOP高端人才,建议你使用DDD,不管项目大小。
我做了一个项目,核心我写了3天,后来加上维护一共一个月,当然构建这个我们之前做准备大概2-3个月。现在回想起来,没有DDD和OOP,就不可能在那么短时间完成它。
另外,那本书相关章节我看了3-4遍,不管哪一遍下来,我从来不觉得它是讲“Entity/VO/Repository/Factory等实践”。我的心得是,它是讲如何消化领域知识,如何根据消化构建出精炼的模型,并注意中间的风险(要联系实现技术等,大型系统模型维护问题),解决复杂领域的问题。

相关推荐

    买椟还珠造句.docx

    "买椟还珠"是一个源于中国古代的成语,出自《韩非子·外储说左上》。这个故事讲述了一个楚国人卖珍珠,他用华丽的木盒子装珍珠,结果买家只看重盒子,把珍珠还给了卖家,留下了盒子。这个成语用来比喻人们在处理事物...

    买椟还珠的意思.doc

    买椟还珠的意思.doc

    买椟还珠读后感参考.doc

    买椟还珠读后感参考.doc

    买椟还珠读后感精选.doc

    【读后感精选】"买椟还珠"这一成语源远流长,它来源于一个古老的故事,旨在告诉我们不应该过于偏爱表面的华美而忽略了物品真正的价值。这个故事虽然简单,却蕴含着深刻的意义,尤其在教育领域,它启发了我们对于教育...

    买椟还珠读后感.docx

    《买椟还珠》这则成语故事源自古代的《韩非子·外储说左上》,故事中的主角因为被华丽的包装所迷惑,而忽视了真正的价值所在——珠宝,最终只保留了相对而言价值较低的盒子。这个故事揭示了一个深刻的道理,即我们在...

    杨可欣的成语故事买椟还珠学习教案.pptx

    在古代中国,有许多丰富多彩的故事和寓言,其中“买椟还珠”的成语故事,通过《韩非子·外储说左上》的记载,流传至今,成为智慧的象征。它讲述了战国时期楚国的商人精心装饰珠宝盒,却忽视了盒内珍珠的价值,结果一...

    从买椟还珠看中国企业质量管理问题.docx

    从买椟还珠看中国企业质量管理问题.docx

    买椟还珠的近义词是什么及造句参考.doc

    买椟还珠的近义词是什么及造句参考.doc

    六年级语文上册 第八单元 小故事 大智慧 第34课《买椟还珠》教案 沪教版五四制-沪教版小学六年级上册语文教案.docx

    同时,结合评委点评和现场模拟,帮助学生理解关键语句,如“郑人买其椟而还其珠”和“自度其足”、“置之其坐”等。 4. 学生心理分析:六年级学生对寓言故事有浓厚兴趣,但对文言文的理解能力有限。通过创新的教学...

    五年级语文上册 二 汉语家园(3)《买椟还珠》课时练 长春版-长春版小学五年级上册语文试题.doc

    《买椟还珠》是中国古代一则著名的寓言故事,讲述了郑国人的一个错误决策,他被一个漂亮的珠盒所吸引,以至于忽略了珍珠本身的价值,最终竟然将宝贵的珍珠退还给了卖家,只留下了无用的盒子。这个故事虽然发生在古代...

    一到六年级日积月累上的四字词语PPT学习教案.pptx

    三年级下学期,词语更注重描绘自然景象和生活情境,如"群芳吐艳"形容花朵盛开,"买椟还珠"则是一个寓言故事,告诫人们不要只看表面而忽视本质。 四年级上学期,成语故事"胸有成竹"来自文与可,寓意做事前要有充分...

    2016秋六年级语文上册中国古代寓言四则练习题无答案沪教版.doc

    1. 《中国古代寓言四则》是一篇语文练习题,涉及古代汉语的学习。其中提到的寓言故事“楚人卖珠”教导我们不要过分包装而忽视了本质。加点词的解释如下: - 为木兰之柜:用木兰这种木材制作的柜子。 - 饰以玫瑰:...

    苏教小学语文五上练习四PPT学习教案.pptx

    例如,一字之差却能导致意思完全不同的例子,如“君子兰”和“君子蓝”,“车篮”和“车蓝”,都强调了同音字辨析的重要性。通过这些实际案例,学生们得以在轻松愉快的氛围中牢记正确的用法,提升他们对汉字的感知力...

    小学五年级传统文化教(学)案.doc

    《买椟还珠》是一个广为人知的寓言故事,通过描述一个买椟还珠的场景,讽刺了那些没有眼光和盲目跟风的行为。在教学《买椟还珠》时,教师可以借助注解和工具书帮助学生理解文言文,并引导学生逐句翻译,对故事中的...

    五年级语文上册 买椟还株 2教案 长春版.doc

    然后,引导学生从故事情节出发,讨论“买椟还珠”行为的不当之处,以及在生活中类似的情况。最后,鼓励学生寻找更多源于古代寓言的成语故事,进行课外拓展,增强对寓言故事的理解和应用。 韩非子是战国时期的法家...

    五年级语文上册 买椟还株 1教案 长春版.doc

    5. 联系现实,课外拓展:将寓言与生活实际相结合,启发学生思考如何在消费和生产中避免“买椟还珠”的现象,提高生活智慧。 6. 学生归纳与收获分享:让学生总结学习内容,提升归纳能力和口头表达能力,强化故事核心...

    一年级阅读带拼音成语故事[001].pdf

    这个成语用来比喻那些在学习他人的时候不加选择和思考,不考虑自身条件,盲目跟随模仿,最终不仅没学会他人之长,反而丢失了自己原有的优点。在故事中,燕国的少年想要学习邯郸人优雅的走路方式,结果由于过分拘泥于...

    深入研究Windows内部原理系列之六:Vista新特性底层揭秘

    Windows之父Jim Allchin曾经说过不要满足于只知道How-to、小技巧之类的知识,而是应该深入底层了解其内部原理。只有了解了这些安全特性的内在原理,才能真正了解Windows Vista是怎样精心替我们解决安全问题的,才能...

    WINDOWS 内部原理(四)

    深入研究Windows内部原理系列之四:Windows操作系统中的重要基本概念 讲师信息:高宇 2007年01月30日 14:00-15:30 Level: 400 进程、线程、资源分配、内存管理、Win32 API、服务、安全,这些是工作中常常提及但是...

    优秀资料(2021-2022年收藏)小学五年级地方课程传统文化备课教案.doc

    2. 文学鉴赏:《硕鼠》是中国古代诗经中的一首,教学目标之一是让学生理解比兴艺术手法,即通过比喻来表达主题,同时通过复唱加深印象和情感表达。 3. 诗词结构:文档指出《硕鼠》具有重章叠句的特点,即重复章节和...

Global site tag (gtag.js) - Google Analytics