孙向晖-《领域驱动设计》读书心得交流会-UMLChina讲座-实录

时间

北京时间2006年3月30日(周四)晚上19:00-21:00

主持人

孙向晖。负责《领域驱动设计》中译本的技术审校工作。他的blog"豆豆他爹的生活随笔"。

dddcover.png

sunshineormer.jpg


聊天记录

(2006.03.30)(19:03:26)sunshineormer与taotzy说:大家好,我们开始吧。

(2006.03.30)(19:04:01)*umlchina_seminar与sunshineormer说:好

(2006.03.30)(19:04:25)sunshineormer与所有人说:非常感谢大家光临《DDD》的读书交流会

(2006.03.30)(19:05:28)sunshineormer与所有人说:应该讲:DDD这本书让大家久等了,DDD的中文版更是让大家久等了。

(2006.03.30)(19:07:06)sunshineormer与所有人说:从2004年开始,很多的朋友就在期盼这本书的中文版

(2006.03.30)(19:07:22)*umlchina_seminar与taotzy说:不只,大家吃饭去了

(2006.03.30)(19:08:04)sunshineormer与所有人说:UMLChina的伙伴们也积极参与到这本书的翻译和审校中

(2006.03.30)(19:08:31)sunshineormer与所有人说:原来计划这本书可以在2005年出版,结果推迟到06年的3月。

(2006.03.30)(19:09:57)sunshineormer与所有人说:朋友们对这本书的期待可以从chinapub上的图书评论上可以看出来。

(2006.03.30)(19:11:08)*joe阿牛 enter this room.

(2006.03.30)(19:11:18)sunshineormer与所有人说:我知道现在是吃晚餐的时间,感谢光临交流会的各位,能够选择在这个时间和我们一起分享你对DDD的感悟,理解和遗惑

(2006.03.30)(19:12:13)*joe阿牛与所有人说:终于进来了不容易啊,umlchina不能访问了,

(2006.03.30)(19:12:31)driftfly与所有人说:感谢sunshineormer能利用休息时间来和大家分享DDD

(2006.03.30)(19:12:45)sunshineormer与taotzy说:我这有一个提纲,因为是交流会,没有准备ppt

(2006.03.30)(19:13:08)evanyuan与所有人说:准备了ppt,我们能看到么?

(2006.03.30)(19:13:29)*umlchina_seminar与*joe阿牛说:umlchina服务器当了

(2006.03.30)(19:13:35)*umlchina_seminar与*joe阿牛说:在修复

(2006.03.30)(19:14:09)*joe阿牛与汶说:幸好我用baidu的快照 ( 啥时候开始?

(2006.03.30)(19:14:13)*joe阿牛与汶说:才看到入口

(2006.03.30)(19:14:19)*joe阿牛与汶说:大家先讨论一下吧?

(2006.03.30)(19:14:25)*joe阿牛与汶说:有没有人实施过ddd了?

(2006.03.30)(19:14:53)*joe阿牛与所有人说:幸好我用baidu的快照

(2006.03.30)(19:15:00)*joe阿牛与所有人说:才看到入口

(2006.03.30)(19:15:16)*joe阿牛与所有人说:大家先讨论一下吧? 有没有人开始实施ddd?

(2006.03.30)(19:15:38)gilbert2002与所有人说:我是收到雅虎通的离线消息,上面又入口啊

(2006.03.30)(19:16:17)sunshineormer与所有人说:evan,你那边实施DDD了吗?

(2006.03.30)(19:16:18)☆平凡与伟大 enter this room.

(2006.03.30)(19:17:12)evanyuan与所有人说:说不上,系统规模很小,历史数据库结构比较顽强,offshore的开发,需求搞得不是很清楚

(2006.03.30)(19:17:25)开心 enter this room.

(2006.03.30)(19:17:32)evanyuan与所有人说:on-site很重要啊

(2006.03.30)(19:17:39)sunshineormer与所有人说:我说一下我的理解吧,现在能够大面积的实施DDD的公司或者项目,可能并不多

(2006.03.30)(19:18:22)*joe阿牛与所有人说:大家来说说困难吧,然后讨论一下如何解决

(2006.03.30)(19:18:40)*joe阿牛与所有人说:我先抛个砖,

(2006.03.30)(19:18:45)sunshineormer与所有人说:一般的公司或者项目,也不会轻易的改换自己“熟悉”了的做法

(2006.03.30)(19:18:48)coly enter this room.

(2006.03.30)(19:19:05)*joe阿牛与所有人说:我对书中"聚合"和聚合根的做法有些疑惑...

(2006.03.30)(19:19:05)sunshineormer与所有人说:好的,欢迎joe分享一下他的心得

(2006.03.30)(19:19:30)*joe阿牛与所有人说:假设聚合有三层甚至四层

(2006.03.30)(19:19:40)*joe阿牛与所有人说:聚合根的职责岂不是太庞大了?

(2006.03.30)(19:20:03)coly与所有人说:大家好,我刚刚进来

(2006.03.30)(19:20:11)coly与所有人说:先问候一声了

(2006.03.30)(19:20:25)*joe阿牛与所有人说:还有, 所谓聚合外实体只能临时“使用”聚合内部的对象,而不能“持有”

(2006.03.30)(19:20:40)*joe阿牛与所有人说:请问,临时使用和持有,有什么区别?

(2006.03.30)(19:21:17)evanyuan与所有人说:我碰到最大的困难是组织结构的问题,如果大家对Domain集成那章有印象的话,在公司各项目组合作不流畅或缺少全局规划的情况下, 就只有使用SeperateWay的形式

(2006.03.30)(19:21:42)sunshineormer与所有人说:joe提出是一个很好的问题。不知道哪位朋友先说一下自己的理解?

(2006.03.30)(19:22:14)wugang enter this room.

(2006.03.30)(19:23:28)evanyuan与所有人说:SeperateWay,首先单个项目里面Domain大不起来,想要利用其它项目的Domain,又会面临集成的复杂度

(2006.03.30)(19:23:47)*糖果咖啡 enter this room.

(2006.03.30)(19:24:37)*joe阿牛与所有人说:evan,你的期望是不是渐进实施ddd?

(2006.03.30)(19:25:04)*joe阿牛与所有人说:刚才我提到的临时使用和持有, 在中文版的91页下

(2006.03.30)(19:26:28)chenge enter this room.

(2006.03.30)(19:26:58)乱发吹风 enter this room.

(2006.03.30)(19:27:10)evanyuan与所有人说:渐进实施DDD?

(2006.03.30)(19:27:38)*joe阿牛与所有人说:那如果整个项目的领导,都没有意愿去实施ddd,

(2006.03.30)(19:27:56)*joe阿牛与所有人说:这是管理的问题

(2006.03.30)(19:28:15)*无极超人 enter this room.

(2006.03.30)(19:28:30)*无极超人 enter this room.

(2006.03.30)(19:28:39)*joe阿牛与所有人说:sunshineormer,

(2006.03.30)(19:28:44)sunshineormer与所有人说:我在

(2006.03.30)(19:28:45)*joe阿牛与所有人说:你的意见呢, 关于聚合

(2006.03.30)(19:28:48)乱发吹风与*umlchina_seminar说:怎么没有声音

(2006.03.30)(19:29:17)*joe阿牛与所有人说:主讲人是谁呢?

(2006.03.30)(19:29:17)sunshineormer与所有人说:关于Agg,就我目前看到的项目,很少有人在这么用。

(2006.03.30)(19:29:32)sunshineormer与所有人说:回答Joe的提问

(2006.03.30)(19:29:54)*umlchina_seminar与sunshineormer说:目前没有人语音说话,愿意说话的就提示一下,以便传递麦克

(2006.03.30)(19:30:02)evanyuan与所有人说:我觉得DDD还是个比较新的概念,在大部分公司里面的高层项目负责人(甚至技术负责人)未必对这些东西了解。所以首先需要这拨人能把DDD熟悉了解起来。

(2006.03.30)(19:30:24)*joe阿牛与所有人说:如果聚合内部必须要经由聚合根导航的话,倒是可以高内聚了,

(2006.03.30)(19:30:32)evanyuan与所有人说:否则光下面的分析或开发人员搞DDD或RichDomainModel,得不偿失

(2006.03.30)(19:30:40)*joe阿牛与所有人说:但如果层数过多,就成了怪物

(2006.03.30)(19:30:46)sunshineormer与所有人说:书中的不变量,我们可以认为是一种内在的规则

(2006.03.30)(19:31:34)乱发吹风与*umlchina_seminar说:可否简单介绍一下DDD

(2006.03.30)(19:31:35)*joe阿牛与所有人说:evan, 现在应该讨论如何说服领导,还是讨论假设你是领导你如何排除障碍?

(2006.03.30)(19:31:43)sunshineormer与所有人说:Agg的拥有和临时持有,我跟我的一个朋友讨论过

(2006.03.30)(19:32:03)evanyuan与*umlchina_seminar说:呵呵,建议使用Sina UC的语音聊天系统,比这里的要好些

(2006.03.30)(19:32:11)*joe阿牛与所有人说:不变量, 赫赫,这个词翻译得有点怪,容易让人误解

(2006.03.30)(19:32:31)*joe阿牛与所有人说:哦, sun

(2006.03.30)(19:32:34)*joe阿牛与所有人说:说说你们的讨论

(2006.03.30)(19:33:13)sunshineormer与所有人说:我们的意见是:拥有 可以简单理解成 创建和修改;临时持有,所有权是不转移的,也就是说,你可以在单个操作总看,但是不能去修改

(2006.03.30)(19:33:47)*joe阿牛与所有人说:就是说,这个约束完全靠人的规范,而不是一种设计上的强约束?

(2006.03.30)(19:33:53)sunshineormer与所有人说:举一个很简单的例子:订单和订单行,

(2006.03.30)(19:34:08)*joe阿牛与所有人说:这意味着更多的成本才能保证。

(2006.03.30)(19:34:42)*joe阿牛与所有人说:嗯。

(2006.03.30)(19:34:48)sunshineormer与所有人说:订单,肯定是有规则的

(2006.03.30)(19:35:06)sun enter this room.

(2006.03.30)(19:35:31)sunshineormer与所有人说:比方说,一个A类客户,可以一次订购3箱卷烟

(2006.03.30)(19:35:47)sunshineormer与所有人说:并执行的是特殊折扣价格

(2006.03.30)(19:35:47)峨峨eee enter this room.

(2006.03.30)(19:36:04)*joe阿牛与所有人说:如果只由两层,看不出什么问题。 我举一个例子,假设在邮件系统里面,一个用户有多个邮件帐户,每个邮件帐户可以收取多封邮件,每逢邮件有多个附件,====

(2006.03.30)(19:37:06)evanyuan与所有人说:OrderLine也会连到Product的 :-)

(2006.03.30)(19:37:50)evanyuan与所有人说:这样也三层了,不过Product又可以看做一个聚合体了。对比来看,附件可能也可以作为新的聚合体了

(2006.03.30)(19:38:11)sunshineormer与所有人说:不只是简单到link到product那么简单吧?

(2006.03.30)(19:38:13)*joe阿牛与所有人说:对,关键是这个,

(2006.03.30)(19:38:29)*joe阿牛与所有人说:也就是说,我要从order拿到product,

(2006.03.30)(19:38:34)sunshineormer与所有人说:joe,你分析一下,你的例子中,有几个root吧。

(2006.03.30)(19:38:43)*joe阿牛与所有人说:而不能从orderline拿到product

(2006.03.30)(19:39:33)evanyuan与*joe阿牛说:order和product关联

(2006.03.30)(19:39:35)*joe阿牛与所有人说:这是个读的例子,可能应该可以由orderline拿到product

(2006.03.30)(19:39:36)evanyuan与*joe阿牛说:?

(2006.03.30)(19:39:53)evanyuan与*joe阿牛说:通常都是orderline和product关联吧

(2006.03.30)(19:40:18)*joe阿牛与所有人说:恩。

(2006.03.30)(19:40:46)sunshineormer与所有人说:joe,你看一下6.11

(2006.03.30)(19:40:53)sunshineormer与所有人说:图6.11

(2006.03.30)(19:40:59)坐看桃花开_859 enter this room.

(2006.03.30)(19:41:08)坐看桃花开_868 enter this room.

(2006.03.30)(19:41:33)evanyuan与所有人说:问sunshine个问题,现在也有不少项目在使用RichDomainModel,用Hibernate等映射工具进行O/R map,你觉得类似的大部分项目和DDD比起来,还差些什么?

(2006.03.30)(19:42:22)坐看桃花开_942 enter this room.

(2006.03.30)(19:42:35)sunshineormer与所有人说:回答evan:首先是缺乏了对业务的熟知

(2006.03.30)(19:43:05)sunshineormer与所有人说:然后,是对领域模型的进一步的梳理。

(2006.03.30)(19:44:21)sunshineormer与所有人说:最后,你说的rich domain model的实际使用情况,我感觉不是太乐观

(2006.03.30)(19:44:32)*joe阿牛与所有人说:有哪些障碍呢?

(2006.03.30)(19:44:44)evanyuan与所有人说:那你就是对DDD在实现层面的运用不乐观了?

(2006.03.30)(19:44:49)*joe阿牛与所有人说:对不起,再深入问一下聚合的问题:

(2006.03.30)(19:44:52)*joe阿牛与所有人说:聚合根是否要负责聚合内部实体的持久化和重建(reconstitute)?如果是,聚合根是否要注入聚合内部实体的持久化服务?

(2006.03.30)(19:45:14)sunshineormer与所有人说:evan,先继续joe的话题吧。呵呵

(2006.03.30)(19:45:54)sunshineormer与所有人说:joe,我让你看的图,你看到了吗?product应该是在order的agg 之外的。

(2006.03.30)(19:46:02)*§童话还不够美§ enter this room.

(2006.03.30)(19:46:03)*joe阿牛与所有人说:我看过了的

(2006.03.30)(19:46:25)sunshineormer与所有人说:还有就是你说的邮件的那个例子,幸好,我也做过实现。也不是在一个agg中

(2006.03.30)(19:46:33)fjqian enter this room.

(2006.03.30)(19:46:37)evanyuan与*joe阿牛说:举个简单的例子,hibernate里面的component好象就可以解决这个持久化问题吧

(2006.03.30)(19:46:45)*joe阿牛与所有人说:嗯,我也知道我举邮件的例子牵强了,

(2006.03.30)(19:46:49)*joe阿牛与所有人说:不必是聚合的。

(2006.03.30)(19:47:30)sunshineormer与所有人说:关于你提出的持久化问题,我也思考过,并和朋友实践过。

(2006.03.30)(19:47:34)*joe阿牛与所有人说:那持久化之前的约束,也就是“不变量”逻辑,应该放在哪儿?

(2006.03.30)(19:47:43)*joe阿牛与所有人说:嗯? 怎么样作?

(2006.03.30)(19:47:55)sunshineormer与所有人说:首先,持久化,不是由agg root去做的。

(2006.03.30)(19:48:20)*joe阿牛与所有人说:什么叫“做”?发起算不算做?代理给别人?

(2006.03.30)(19:49:08)sunshineormer与所有人说:你应该是建立一个repository,让它去完成agg root的初始化

(2006.03.30)(19:49:27)evanyuan与所有人说:我觉得“不变量”,分两种,一种是可在系统使用前初始化的枚举或常量值,比如中国的城市;

(2006.03.30)(19:49:38)*joe阿牛与所有人说:也就是说 client--> repository---生成--〉entity

(2006.03.30)(19:49:44)sunshineormer与所有人说:如果是你从头建一个agg root,那个应该是用factory去new 这个agg root

(2006.03.30)(19:49:55)*joe阿牛与所有人说:这个我理解。

(2006.03.30)(19:50:12)sunshineormer与所有人说:注意:repository,更多的是重建agg root

(2006.03.30)(19:50:18)*joe阿牛与所有人说:那么如果一个领域逻辑, 在做完一定事情之后,要持久化自己,

(2006.03.30)(19:50:20)*joe阿牛与所有人说:怎么做呢?

(2006.03.30)(19:50:25)evanyuan与所有人说:还有种是书里所谓的ValueObject,比如Person-->Address,Address通常看做ValueObject。 不知道我理解对不对?

(2006.03.30)(19:50:40)sunshineormer与所有人说:而且,这部分,最好是由ORMapping工具来完成。

(2006.03.30)(19:51:01)*joe阿牛与所有人说:是entity.save()还是repository.save(entity)?

(2006.03.30)(19:51:21)sunshineormer与所有人说:我写过一篇blog,讲过save的事情。

(2006.03.30)(19:51:23)永方 enter this room.

(2006.03.30)(19:51:29)*joe阿牛与所有人说:如果是后者,那么,这个调用的发起者是client还是entity?

(2006.03.30)(19:51:35)sunshineormer与所有人说:当然是后者了

(2006.03.30)(19:51:43)*joe阿牛与所有人说:赫赫,share一下,网址?

(2006.03.30)(19:52:30)*joe阿牛与所有人说:第二个问题?

(2006.03.30)(19:52:38)evanyuan与所有人说:两种选择,都可以...,结果是Domain对象对持久化机制有没依赖性了

(2006.03.30)(19:52:38)*joe阿牛与所有人说:如果是后者,那么,这个调用的发起者是client还是entity?

(2006.03.30)(19:53:09)*joe阿牛与所有人说:。。。 如果是后者, entity当然对repository有意来

(2006.03.30)(19:53:11)*joe阿牛与所有人说:依赖

(2006.03.30)(19:53:26)sunshineormer与所有人说:http://sunshineormer.blogdriver.com/sunshineormer/417702.html

(2006.03.30)(19:53:40)*joe阿牛与所有人说:也就是说, entity调用repository.save(this)

(2006.03.30)(19:53:59)evanyuan与所有人说:八会吧

(2006.03.30)(19:54:02)sunshineormer与所有人说:依赖是从repository到entity的。

(2006.03.30)(19:54:19)evanyuan与所有人说:一般是有什么facade啊,applicationLayer啊来调用吧

(2006.03.30)(19:55:12)*joe阿牛与所有人说:ok,我猜想你们的答案是如此

(2006.03.30)(19:55:27)*joe阿牛与所有人说:那么想想client的调用顺序吧

(2006.03.30)(19:55:38)*joe阿牛与所有人说:client就是你们说的service

(2006.03.30)(19:57:08)*joe阿牛与所有人说:我说的service就是应用层的

(2006.03.30)(19:57:39)sunshineormer与所有人说:请大家记住,entity是永远不知道存储的

(2006.03.30)(19:58:49)*joe阿牛与所有人说:那么会变成这样,service{ someresult= entity.dosomething();

(2006.03.30)(19:58:53)*joe阿牛与所有人说:if (someresult==expercted) {repository.save(entity)}}

(2006.03.30)(19:58:57)evanyuan与sunshineormer说:也未必吧,有些人就是要Entity倚赖个存储层的接口,然后在Entity.Save()里面调用存储层的接口实现存储

(2006.03.30)(19:59:18)*joe阿牛与所有人说:对,我倾向于这样。

(2006.03.30)(19:59:35)*joe阿牛与所有人说:sun请看我刚才的代码

(2006.03.30)(19:59:42)evanyuan与*joe阿牛说:这些讨论,网上太多了

(2006.03.30)(20:00:06)*joe阿牛与所有人说:我听不太顺畅。。。 -_-b

(2006.03.30)(20:00:47)*joe阿牛与所有人说:对,一切做法都是为了使领域层保持独立,

(2006.03.30)(20:01:33)*joe阿牛与所有人说:sorry,, ,听不清楚。。。

(2006.03.30)(20:01:55)真 enter this room.

(2006.03.30)(20:02:22)*joe阿牛与所有人说:任何使用repository的client,都不用关心对象是如何被持久和存储的。对client来说,存储是透明的。

(2006.03.30)(20:02:34)*joe阿牛与所有人说:entity为什么不可以是repo的client?

(2006.03.30)(20:02:36)sunshineormer与所有人说:我还是想强调一下,DDD和企业应用架构模式PEAA的关系。

(2006.03.30)(20:02:40)evanyuan与所有人说:sunshine,DDD是否是从概念模型逐渐细化到实现模型?

(2006.03.30)(20:03:37)sunshineormer与所有人说:如果你想使用DDD中提出的这些概念、理论,那么你必需先保证,你用到的是PEAA中(业务逻辑层)的Domain Model模式

(2006.03.30)(20:04:00)*joe阿牛与所有人说:是这样, 请看我刚才那两行伪代码

(2006.03.30)(20:04:09)*joe阿牛与所有人说:someresult==expercted

(2006.03.30)(20:04:14)sunshineormer与所有人说:joe

(2006.03.30)(20:04:16)*joe阿牛与所有人说:这个很多情况下是领与逻辑

(2006.03.30)(20:04:21)*joe阿牛与所有人说:领域逻辑

(2006.03.30)(20:04:37)driftfly_277 enter this room.

(2006.03.30)(20:04:54)*joe阿牛与所有人说:然而如果禁止entity调用repo的话,那么应用层不得不负责这块领域逻辑

(2006.03.30)(20:04:57)tianshannv enter this room.

(2006.03.30)(20:05:09)*joe阿牛与所有人说:换言之,妨碍了领域层的独立性。

(2006.03.30)(20:05:29)*joe阿牛与所有人说:不知道我的理解是否正确?

(2006.03.30)(20:06:01)sunshineormer与所有人说:joe,我发了好多字,你能看到吗

(2006.03.30)(20:06:15)evanyuan与所有人说:这个...,DDD里面有所谓的“应用逻辑”和

(2006.03.30)(20:06:20)evanyuan与所有人说:“领域逻辑”

(2006.03.30)(20:06:29)*joe阿牛与所有人说:如果允许entity调用repo的话,那么就变成service{entity.dosomething()}了

(2006.03.30)(20:06:31)*joe阿牛与所有人说:没看到阿

(2006.03.30)(20:07:22)evanyuan与所有人说:而且就Domain本身,可能还会有个Service层(充当Domain的facade)

(2006.03.30)(20:07:45)永方 enter this room.

(2006.03.30)(20:07:59)tianshannv与*joe阿牛说:jixushuo

(2006.03.30)(20:08:05)evanyuan与所有人说:所以偶在做系统的时候,实现层面“逻辑”究竟往哪放,有时候是个比较头疼的事

(2006.03.30)(20:08:13)sunshineormer与所有人说:hi

(2006.03.30)(20:08:20)evanyuan与所有人说:可能和Joe的疑惑有点接近吧

(2006.03.30)(20:08:25)sunshineormer与所有人说:大家好,

(2006.03.30)(20:08:38)*joe阿牛与所有人说:对,martin也说区分这两者很困难

(2006.03.30)(20:09:02)*joe阿牛与所有人说:所以我想,如果entity能调用repo,就可以解决了,我不知道有什么坏处?

(2006.03.30)(20:09:10)evanyuan与所有人说:最重要的是保证一个开发团队尽量有一致的思路

(2006.03.30)(20:09:38)*joe阿牛与所有人说:tianshannv, 我不擅长看拼音阿

(2006.03.30)(20:09:45)*joe阿牛与所有人说:可能会慢。

(2006.03.30)(20:10:09)sunshineormer与所有人说:如果大家使用sping配合hibernate,就会比较容易理解这部分。

(2006.03.30)(20:10:30)*joe阿牛与所有人说:如果entity能调用repo, 我会用接口把repo抽象出来,勉强弄灵活点

(2006.03.30)(20:11:36)sunshineormer与所有人说:joe,在吗?

(2006.03.30)(20:11:41)*joe阿牛与所有人说:在

(2006.03.30)(20:11:51)*joe阿牛与所有人说:我没看到你发东西哦?

(2006.03.30)(20:12:00)evanyuan与*joe阿牛说:关于Domain持久化的问题, JavaEye上面已经有N多讨论了,建议去看看

(2006.03.30)(20:12:07)sunshineormer与所有人说:ok,你为什么要用entity.save()呢?

(2006.03.30)(20:12:17)evanyuan与sunshineormer说:sunshine,DDD是否是从概念模型逐渐细化到实现模型?

(2006.03.30)(20:12:35)tianshannv与evanyuan说:NAQ BING BU ZHONGYAO WO JIYANXIANGLIAO KE SHI ZHEN DE A BU XINMA

(2006.03.30)(20:12:58)sunshineormer与*umlchina2说:可以给我mic吗?

(2006.03.30)(20:13:12)*joe阿牛与所有人说:。。。 sun,那么如何解决应用层要管理someresult==expected的逻辑呢?

(2006.03.30)(20:13:27)sunshineormer与*umlchina2说:回答evan:我认为,是

(2006.03.30)(20:13:33)evanyuan与sunshineormer说:呵呵,遭受DDD反动份子的攻击了(tainshannv)

(2006.03.30)(20:14:14)evanyuan与所有人说:ok, sunshine,你认为实现层面要细化到什么层度呢?

(2006.03.30)(20:14:20)sunshineormer与*umlchina2说:to joe:把你说的应用层分开:形成一个业务服务层,

(2006.03.30)(20:14:35)sunshineormer与*umlchina2说:mic还是不好用

(2006.03.30)(20:15:07)*joe阿牛与所有人说:那业务服务层和普通的transaction script有什么不同?

(2006.03.30)(20:15:09)惠苹 enter this room.

(2006.03.30)(20:15:15)evanyuan与所有人说:当我不断的试图在分析设计阶段细化Domain的时候,我想,这样是不是和敏捷开发和XP背道而驰了。 你怎么看?

(2006.03.30)(20:15:18)sunshineormer与*umlchina2说:to evan: 理想的状态,是整个领域模型(对象和之间关系)都在

(2006.03.30)(20:15:25)sunshineormer与*umlchina2说:而且很完整

(2006.03.30)(20:15:43)sunshineormer与*umlchina2说:还是不行

(2006.03.30)(20:15:46)*joe阿牛与所有人说:有了这个东西,如何很清晰的分配职责? 哪些应该是entity的,哪些是业务服务层的?

(2006.03.30)(20:16:41)sunshineormer与所有人说:记住基本的一点:entity不关心存储逻辑就行

(2006.03.30)(20:16:43)tianshannv与*joe阿牛说:bu zhidao zai ganxie sm weicizaidiannianfangxinbuxia

(2006.03.30)(20:17:09)*joe阿牛与所有人说:所有人都说entity不关心存储逻辑, 那么理由何在?

(2006.03.30)(20:17:45)sunshineormer与所有人说:这和evan的问题有一些管理

(2006.03.30)(20:17:47)test enter this room.

(2006.03.30)(20:17:54)*joe阿牛与所有人说:关联,

(2006.03.30)(20:17:59)*joe阿牛与所有人说:?

(2006.03.30)(20:18:01)sunshineormer与tianshannv说:sorry,看不懂。

(2006.03.30)(20:18:13)lanwei enter this room.

(2006.03.30)(20:18:17)sunshineormer与tianshannv说:对,呵呵。sorry

(2006.03.30)(20:18:54)sunshineormer与所有人说:也就是说,DDD提倡领域模型,一直到最后实现了,还是完整存在的

(2006.03.30)(20:19:17)sunshineormer与所有人说:这更符合我们最初的OO的思想

(2006.03.30)(20:19:59)lanwei与所有人说:大家好呀.今天的讲座,有资料可以下载吗?

(2006.03.30)(20:20:15)evanyuan与所有人说:我觉得还需要资料介绍如何把DDD融入到RUP,XP等开发流程中

(2006.03.30)(20:20:18)*joe阿牛与所有人说:ok, sun,我就拿书中例子说吧,

(2006.03.30)(20:20:24)sunshineormer与所有人说:好的 ,我的msn: [email protected]

(2006.03.30)(20:20:25)*joe阿牛与所有人说:50页的图

(2006.03.30)(20:20:31)lanwei与所有人说:没有书呀.

(2006.03.30)(20:20:41)evanyuan与所有人说:否则....,推广的难度还是很大的

(2006.03.30)(20:20:52)tianshannv与lanwei说:kan zhe ban wo shuozuode na you smbu hao de wo keting lai guanjiang

(2006.03.30)(20:21:03)sunshineormer与所有人说:sorry,你告诉我,哪个图,我是英文版的。

(2006.03.30)(20:21:11)evanyuan与所有人说:“我觉得还需要资料介绍如何把DDD融入到RUP,XP等开发流程中“, sunshine,你怎么看?

(2006.03.30)(20:21:30)*joe阿牛与所有人说:a234.addToUnitOfWork(a234)

(2006.03.30)(20:21:41)*joe阿牛与所有人说:就是转账的图

(2006.03.30)(20:21:42)tianshannv与sunshineormer说:不错啊我是学英语的啊怎吗知道来啊

(2006.03.30)(20:22:36)sunshineormer与所有人说:今天是一个读书会,我问过think,所以没有整理ppt

(2006.03.30)(20:22:52)*joe阿牛与所有人说:这个addToUnitOfWork,不就应该是update()么?

(2006.03.30)(20:22:56)tianshannv与sunshineormer说:现在可要学好一你雷锋为榜样

(2006.03.30)(20:23:17)sunshineormer与所有人说:我会另外找机会整理一个ppt,不知道以后是不是有机会跟大家进行细致的交流

(2006.03.30)(20:23:20)*joe阿牛与所有人说:难道应该让fundsTransferService.update(a234)?

(2006.03.30)(20:23:25)lanwei enter this room.

(2006.03.30)(20:23:43)sunshineormer与所有人说:另外,我会把更多的内容写到我的blog中,请大家关注。

(2006.03.30)(20:23:54)*joe阿牛与所有人说:请sun回答,谢啦,

(2006.03.30)(20:24:04)sunshineormer与所有人说:可以发mail给我 [email protected]

(2006.03.30)(20:24:14)sunshineormer与所有人说:to joe:ok

(2006.03.30)(20:25:45)*joe阿牛与所有人说:哦刚才我写错了,应该是:

(2006.03.30)(20:25:59)*joe阿牛与所有人说:fundsTransferService{repository.update(a234)}

(2006.03.30)(20:26:05)sunshineormer与所有人说:是图4.1吗?

(2006.03.30)(20:26:09)*joe阿牛与所有人说:对

(2006.03.30)(20:26:21)*joe阿牛与所有人说:a234.update()

(2006.03.30)(20:26:24)sunshineormer与所有人说:我的书太厚了,呵呵,稍等

(2006.03.30)(20:26:32)*joe阿牛与所有人说:这个和上面那个,选哪个?

(2006.03.30)(20:26:58)*joe阿牛与所有人说:a234.update() {repository.update(this)}

(2006.03.30)(20:26:58)tianshannv与sunshineormer说:别在这里诅咒好不好我现在不想说着你又来了你看你

(2006.03.30)(20:27:44)tianshannv与sunshineormer说:广东方面可好啊

(2006.03.30)(20:28:16)tianshannv与sunshineormer说:别那着自己人不当人哈

(2006.03.30)(20:28:33)sunshineormer与tianshannv说:你是说a234中调用了uow manager?

(2006.03.30)(20:28:42)sunshineormer与所有人说:你是说a234中调用了uow manager?

(2006.03.30)(20:29:17)*joe阿牛与所有人说:uow?

(2006.03.30)(20:29:59)tianshannv与*joe阿牛说:到底叫什么来跟我说我给你好的吃

(2006.03.30)(20:30:37)sunshineormer enter this room.

(2006.03.30)(20:30:41)tianshannv与*joe阿牛说:想吃什么尽管说可不要不说要不不来劲了啊

(2006.03.30)(20:31:04)*joe阿牛与所有人说:?我掉线了么?

(2006.03.30)(20:31:26)tianshannv与*joe阿牛说:我来接上吗

(2006.03.30)(20:31:55)tianshannv与*joe阿牛说:为什么不为什么你当然知道

(2006.03.30)(20:32:39)tianshannv与*joe阿牛说:你看了之后啊我说跟你朋友说说也知道大概

(2006.03.30)(20:32:47)*joe阿牛与所有人说:??

(2006.03.30)(20:32:55)*joe阿牛 enter this room.

(2006.03.30)(20:32:55)sunshineormer enter this room.

(2006.03.30)(20:33:12)wugang与所有人说:no

(2006.03.30)(20:33:12)*joe阿牛与所有人说:哦 ,

(2006.03.30)(20:33:18)*joe阿牛与所有人说:sorry我掉线了!

(2006.03.30)(20:33:33)tianshannv与*joe阿牛说:怎吗不知道了少来着一套

(2006.03.30)(20:33:37)sunshineormer与所有人说:sorry

(2006.03.30)(20:33:42)*joe阿牛与所有人说:so sorry

(2006.03.30)(20:33:52)sunshineormer与所有人说:sorry,我也掉线了

(2006.03.30)(20:34:13)sunshineormer与所有人说:to joe,我个人认为:那个图画得不好

(2006.03.30)(20:34:21)*joe阿牛与所有人说:哦?

(2006.03.30)(20:34:37)*joe阿牛与所有人说:那应该是怎么样的?

(2006.03.30)(20:34:43)sunshineormer与所有人说:你可以看出来:begintrans 和commit都是由service发出的

(2006.03.30)(20:35:06)*joe阿牛与所有人说:这个可以用spring配置的

(2006.03.30)(20:35:26)*joe阿牛与所有人说:应用层是应该管transaction的

(2006.03.30)(20:35:30)*joe阿牛与所有人说:吧?

(2006.03.30)(20:35:38)*joe阿牛与所有人说:书中也有这样说

(2006.03.30)(20:35:39)sunshineormer与所有人说:因此,service才应该更关心 addtouow

(2006.03.30)(20:36:21)*joe阿牛与所有人说:addToUnitOfWork

(2006.03.30)(20:36:35)*joe阿牛与所有人说:我觉得这是一个抽象,并不是实际实现,

(2006.03.30)(20:36:46)sunshineormer与所有人说:uow其实就是事务管理器。

(2006.03.30)(20:36:48)*joe阿牛与所有人说:实际实现就是repo.update()

(2006.03.30)(20:37:09)sunshineormer与所有人说:这个图,ddd的作者是想告诉我们为什么要分那么多的服务层

(2006.03.30)(20:37:57)*joe阿牛 enter this room.

(2006.03.30)(20:38:17)*joe阿牛与所有人说:那真正的实现应该是怎么样呢/

(2006.03.30)(20:38:58)*joe阿牛与所有人说:uow是singleton, transactionstatus是线程隔离的全局状态,

(2006.03.30)(20:39:19)*joe阿牛与所有人说:这些都应当对Service和entity透明,

(2006.03.30)(20:39:41)*joe阿牛与所有人说:service只管声明事务策略就好。 这是我的做法。

(2006.03.30)(20:40:16)*joe阿牛 enter this room.

(2006.03.30)(20:41:15)sunshineormer与所有人说:这样吧,我写邮件跟DDD的作者交流后,再讨论这个话题吧。

(2006.03.30)(20:41:23)*joe阿牛与所有人说:ok,

(2006.03.30)(20:41:29)*joe阿牛与所有人说:不好意思,占用大家很多时间

(2006.03.30)(20:41:39)*joe阿牛与所有人说:evan?

(2006.03.30)(20:41:59)sunshineormer与所有人说:谢谢你的心得,我也曾经在这部分徘徊了好久

(2006.03.30)(20:42:14)*joe阿牛与所有人说:是的,很期待解决这块的疑惑!

(2006.03.30)(20:42:57)sunshineormer与所有人说:我简单的说一下我对DDD这本书的理解(或者说感兴趣的地方吧)

(2006.03.30)(20:43:07)*joe阿牛与所有人说:javaeye上大部分关于贫血充血的争论都看过了。好的,:)

(2006.03.30)(20:44:27)sunshineormer与所有人说:?

(2006.03.30)(20:44:35)sunshineormer与所有人说:1 业务和技术的分层与理解 (1 真正的业务专家无人替代,后面的技术人员全职)

(2006.03.30)(20:44:57)*joe阿牛与所有人说:全职?

(2006.03.30)(20:45:05)sunshineormer与所有人说:现状:关于模型和技术基础设施的不匹配。

(2006.03.30)(20:45:09)marka enter this room.

(2006.03.30)(20:45:18)sunshineormer与所有人说:MDA,是将更多的时间拿出来了解和细化业务模型。

(2006.03.30)(20:45:27)sunshineormer与所有人说:2 对于模型的理解: 一个模块或者一个应用需要检验,一个模型同样需要检验

(2006.03.30)(20:45:40)sunshineormer与所有人说:3 对于context的理解。模型和团队之间的关系。

(2006.03.30)(20:45:46)*joe阿牛与所有人说:恩。

(2006.03.30)(20:45:54)sunshineormer与所有人说:这个跟even的论点非常相似

(2006.03.30)(20:46:13)sunshineormer与所有人说:4 重构到模式

(2006.03.30)(20:46:27)sunshineormer与所有人说:本来想举一个例子的。

(2006.03.30)(20:46:40)sunshineormer与所有人说:5 大规模应用,分层规划。职责层的划分。

(2006.03.30)(20:46:49)*joe阿牛与所有人说:sun, 说道例子,有没有一个完整实现的例子?

(2006.03.30)(20:46:52)sunshineormer与所有人说:模型太大,我们不能一视同仁

(2006.03.30)(20:46:59)sunshineormer与所有人说:6 core domain 和 generic subdomain

(2006.03.30)(20:47:05)*joe阿牛与所有人说:嗯。

(2006.03.30)(20:47:14)sunshineormer与所有人说:要认真的区分才行。

(2006.03.30)(20:47:23)icecloud enter this room.

(2006.03.30)(20:47:54)icecloud_874 enter this room.

(2006.03.30)(20:48:17)sunshineormer与所有人说:希望大家阅读愉快。

(2006.03.30)(20:48:36)sunshineormer与所有人说:本来是想举例子的,结果今天的语音不能用

(2006.03.30)(20:48:37)*joe阿牛与所有人说:谢谢sun的辛苦工作

(2006.03.30)(20:48:47)stonejiang enter this room.

(2006.03.30)(20:49:12)sunshineormer与所有人说:感谢各位,还坚持听我在此罗嗦。

(2006.03.30)(20:49:27)sunshineormer与所有人说:有一个think在2005中国软件大会上的ppt

(2006.03.30)(20:49:31)*joe阿牛与所有人说:sun,有没有象petstore那样的范例?

(2006.03.30)(20:49:35)*joe阿牛与所有人说:哦?

(2006.03.30)(20:49:37)stonejiang_977 enter this room.

(2006.03.30)(20:49:52)sunshineormer与所有人说:我会跟他联系后,争取共享出来

(2006.03.30)(20:50:21)sunshineormer与所有人说:To:joe 真正的应用,决不是petstore那么简单。

(2006.03.30)(20:50:36)*joe阿牛与所有人说:hehe当然不要那种ts的petstore

(2006.03.30)(20:50:41)*joe阿牛与所有人说:简直误人子弟

(2006.03.30)(20:50:41)sunshineormer与所有人说:我会把我们在项目上的一些实践例子,共享出来的。

(2006.03.30)(20:50:55)*joe阿牛与所有人说:好, 太感谢了

(2006.03.30)(20:52:27)sunshineormer与所有人说:icecloud,应该是冰云吧,说两句如何?

(2006.03.30)(20:52:52)icecloud_874与所有人说:阿

(2006.03.30)(20:53:05)*joe阿牛与所有人说:对, 冰云给讲讲:)

(2006.03.30)(20:53:17)evanyuan与所有人说:ft,icecloud是来874的,呵呵

(2006.03.30)(20:53:32)icecloud_874与所有人说:。。。。。来晚了没听到阿

(2006.03.30)(20:53:40)sunshineormer与所有人说:在论坛上经常看到你的帖子,说一下你的理解吧。

(2006.03.30)(20:53:49)*joe阿牛与所有人说:对说说

(2006.03.30)(20:54:05)icecloud_874与所有人说:。。。这个吗,同学们,我没接上话题呢

(2006.03.30)(20:54:34)sunshineormer与所有人说:是读书会,大家随便发言的。

(2006.03.30)(20:54:42)evanyuan与所有人说:DDD那本书蛮好的,对我影响蛮大,最直接的影响就是做开发越来越郁闷了

(2006.03.30)(20:54:50)sunshineormer与所有人说:能分享一下你对DDD这本书的看法吗?

(2006.03.30)(20:55:00)icecloud_874与所有人说:哎,我还没读过这书

(2006.03.30)(20:55:10)a ke su enter this room.

(2006.03.30)(20:55:18)sunshineormer与所有人说:to evan:你是郁闷,我是彷徨。呵呵

(2006.03.30)(20:56:18)sunshineormer与所有人说:一方面:项目工期等压力,要求你尽快出东西,管你什么技术,什么方法;一方面,自己感觉DDD是出路,

(2006.03.30)(20:56:24)icecloud_874与所有人说:我们目前开发主要是Test Driven,所以domain不是first class

(2006.03.30)(20:56:34)*joe阿牛与所有人说:那通俗一点,所谓贫血和充血,总有一说吧,

(2006.03.30)(20:56:52)sunshineormer与所有人说:因为按照DDD的做法,要对人员技能有很高的要求。

(2006.03.30)(20:56:57)*joe阿牛与所有人说:嗯,

(2006.03.30)(20:57:27)sunshineormer与所有人说:而且,也对项目组的团队模型和业务熟知程度有很高的要求。

(2006.03.30)(20:57:30)*joe阿牛与所有人说:sun, 模型的精化,是很考较能力的阿

(2006.03.30)(20:58:19)sunshineormer与所有人说:我在做一个CIF模型,很庞大,客户很感兴趣。

(2006.03.30)(20:58:43)sunshineormer与所有人说:我没有拿领域模型跟他们交流,而是画了一个对象图。客户说:对,这就是我们想要的。

(2006.03.30)(20:58:57)evanyuan与sunshineormer说:持续跟踪与汇报

(2006.03.30)(20:58:57)*joe阿牛与所有人说:cif,

(2006.03.30)(20:59:02)*joe阿牛与所有人说:表示什么?

(2006.03.30)(20:59:57)sunshineormer与所有人说:to 冰云:难道你们公司不关心domain?

(2006.03.30)(21:00:12)icecloud_874与所有人说:关心阿

(2006.03.30)(21:00:44)icecloud_874与所有人说:但更关心的是质量和测试

(2006.03.30)(21:00:58)sunshineormer与所有人说:Test driven还是建立在业务的基础上的吧。

(2006.03.30)(21:01:01)*joe阿牛与所有人说:听起来,两者有冲突

(2006.03.30)(21:01:24)sunshineormer与所有人说:我感觉没有冲突,只不过是关心的角色不同,

(2006.03.30)(21:01:34)icecloud_874与所有人说:没冲突,test本质上是需求

(2006.03.30)(21:02:09)icecloud_874与所有人说:我们用test保证需求,保证响应变化,

(2006.03.30)(21:02:24)icecloud_874与所有人说:这样domain就不是最重要的了,domain也会经常变化啊

(2006.03.30)(21:02:46)sunshineormer与所有人说:你们做的是哪个行业或者领域产品?

(2006.03.30)(21:03:00)*joe阿牛与所有人说:domain driven,赫赫,是不是需求->domain-〉test->code

(2006.03.30)(21:03:30)icecloud_874与所有人说:我们啊。。做的咨询

(2006.03.30)(21:03:33)sunshineormer与所有人说:domain driven和test driven 要结合起来用

(2006.03.30)(21:03:40)icecloud_874与所有人说:不是,需求->test->code

(2006.03.30)(21:03:57)icecloud_874与所有人说:domain有

(2006.03.30)(21:04:29)icecloud_874与所有人说:我感觉某些领域的domain很难搞,例如那些填form报表系统

(2006.03.30)(21:05:28)sunshineormer与所有人说:呵呵,domain也分好多种类,你说的那个太抽象了。

(2006.03.30)(21:05:47)icecloud_874与所有人说:哎 ( 我说过我没看过这书嘛。。

(2006.03.30)(21:05:51)*joe阿牛与sunshineormer说:对不起, sun老大,我得回去了,否则没车了,非常感谢你分享你的经验!

(2006.03.30)(21:06:02)sunshineormer与所有人说:icecloud:就你的了解,现在国内真正能做起Testdriven的多吗?

(2006.03.30)(21:06:37)icecloud_874与所有人说:不了解阿。。

(2006.03.30)(21:06:41)icecloud_874与所有人说:我估计不会有几个

(2006.03.30)(21:07:10)sunshineormer与所有人说:我在我们的团队中也推过,后来大家基本放弃了。因为:如果使用transactionscript或者好点的tablemodule,实施TDD会很累

(2006.03.30)(21:07:19)icecloud_874与所有人说:我现在在ThoughtWorks,我公司经验做这个经验比较丰富

(2006.03.30)(21:07:29)*joe阿牛与所有人说:hehe , 冰云,

(2006.03.30)(21:07:39)*joe阿牛与所有人说:那么ts下如何做test?

(2006.03.30)(21:07:51)*joe阿牛与所有人说:会不会很累?

(2006.03.30)(21:07:59)sunshineormer与所有人说:to joe:感谢你的心得,一路平安。

(2006.03.30)(21:08:04)icecloud_874与所有人说:test分为很多种的,最外层是一种functional test

(2006.03.30)(21:08:25)icecloud_874与所有人说:我们用selenium,相当于对系统的行为作黑盒自动测试

(2006.03.30)(21:08:31)*joe阿牛与所有人说:大家晚安,

(2006.03.30)(21:08:59)icecloud_874与所有人说:这样的话就不用管系统内部什么实现了

(2006.03.30)(21:10:03)sunshineormer与所有人说:我想我们用自动化测试工具做的部分,好像跟你说的类似。

(2006.03.30)(21:10:16)icecloud_874与所有人说:恩

(2006.03.30)(21:10:29)sunshineormer与所有人说:我们使用的是qtp和loadrunner,MI的产品

(2006.03.30)(21:10:35)evanyuan与所有人说:sunshine,所以我说以后可以研究下敏捷开发和DDD怎么结合

(2006.03.30)(21:10:54)icecloud_874与所有人说:不太一样

(2006.03.30)(21:10:55)sunshineormer与所有人说:但是单元测试是我们的痛。。。。

(2006.03.30)(21:11:11)icecloud_874与所有人说:我们functional也是可以test driven或test first

(2006.03.30)(21:11:23)icecloud_874与所有人说:如果说用junit 作domain的unit test

(2006.03.30)(21:11:23)sunshineormer与所有人说:to evan:在研究着呢。呵呵

(2006.03.30)(21:11:41)icecloud_874与所有人说:如果能真正做到test driven,就不会觉得test难写了

(2006.03.30)(21:11:51)icecloud_874与所有人说:no test no code

(2006.03.30)(21:12:07)evanyuan与所有人说:我之前进行业务对象建模,到后面就是花很长的时间在设计阶段进行对象的静态和动态模型建模,感觉已经很不敏捷了

(2006.03.30)(21:12:13)icecloud_874与所有人说:如果觉得难写,一定是先提前想了code实现如何写

(2006.03.30)(21:12:17)sunshineormer与所有人说:我想,不光是agile和DDD的关系,DDD和UP的关系,我也在跟踪

(2006.03.30)(21:13:15)evanyuan与所有人说:我以前好象问过冰云,他们的业务对象设计到什么层度

(2006.03.30)(21:13:47)sunshineormer与所有人说:从内心来讲,我是非常认同TDD的,但是,目前的项目(公司)情况,不允许我们一下子加入过多的内容。

(2006.03.30)(21:14:00)icecloud_874与所有人说:(

(2006.03.30)(21:14:36)sunshineormer与所有人说:要兼顾现有的人员和项目状况啊

(2006.03.30)(21:14:43)icecloud_874与所有人说:老实说,tdd还是需要很高的技巧的

(2006.03.30)(21:14:59)evanyuan与所有人说:虽然说XP不强调设计,但是CRC,白板建模,TDD时考虑要实现的功能接口,都算是对对象进行设计了,只是不那么正规而已

(2006.03.30)(21:15:14)icecloud_874与所有人说:如果没有好的教练,确实不能很好的适合国内团队

(2006.03.30)(21:15:17)evanyuan与所有人说:冰云,侬咋看?

(2006.03.30)(21:15:38)icecloud_874与所有人说:XP不强调设计,但是非常强调需求分析

(2006.03.30)(21:15:57)sunshineormer与所有人说:我这两天,在研究几个mda产品(我们技术中心自己也有mda产品),发现,domain mode 被切分开了。

(2006.03.30)(21:16:08)evanyuan与所有人说:你的需求分析,会得出业务概念模型这么个输出么?

(2006.03.30)(21:16:18)sunshineormer与所有人说:xp 的前提:客户参与。

(2006.03.30)(21:16:33)evanyuan与所有人说:DDD的前提也是客户参与吧,sunshine?

(2006.03.30)(21:16:41)sunshineormer与所有人说:evan,会得出来。这点没有疑问。

(2006.03.30)(21:17:05)sunshineormer与所有人说:ddd属于敏捷一系的。

(2006.03.30)(21:17:23)evanyuan与sunshineormer说:sorry,我问的是冰云他的需求分析

(2006.03.30)(21:17:50)sunshineormer与所有人说:当然也要客户参与。不过,我看见了更多的是没有客户参与的项目。是靠拍脑门出来的“需求”

(2006.03.30)(21:18:40)evanyuan与sunshineormer说:跟每个公司状况有关系吧

(2006.03.30)(21:18:49)icecloud_874与所有人说:敏捷离不开客户的,没客户瞎搞肯定不行

(2006.03.30)(21:19:13)icecloud_874与所有人说:需求分析可能会有些产出,但不会是model,而是客户能看得懂的界面原型

(2006.03.30)(21:19:15)evanyuan与sunshineormer说:比如我之前的公司,我们给美国做offshore开发,美国那边有开发人员获取需求,但是他们的需求获取能力实在有限

(2006.03.30)(21:19:55)evanyuan与sunshineormer说:本来中国这边也有几个优秀的需求分析人员,我都给上面建议把这几个人送到美国去专门分析需求,反正也不知道上面怎么想的,一直没动作

(2006.03.30)(21:21:01)evanyuan与所有人说:所以,需要TW这么强势的公司给公司高层做工作才行。

(2006.03.30)(21:21:13)icecloud_874与所有人说:晕

(2006.03.30)(21:21:30)icecloud_874与所有人说:你让老板雇我们来吧,非常想去上海呢

(2006.03.30)(21:21:49)sunshineormer与所有人说:icec:有了需求分析后,客户关注和能够确认的是UI,dev和sa关注的是model

(2006.03.30)(21:22:16)evanyuan与所有人说:我的意思是说,给中国的企业开发强调on-site的重要,强调培养优秀需求分析人员的重要性

(2006.03.30)(21:22:34)evanyuan与所有人说:同时能让他们意识到需求分析人员的价值

(2006.03.30)(21:22:37)sunshineormer与所有人说:我感觉xp也好agile也罢,精简了的up也好,总体上差不了太多。

(2006.03.30)(21:23:51)sunshineormer与所有人说:evan,话题远了些。呵呵

(2006.03.30)(21:24:10)evanyuan与icecloud_874说:我们老板,现在正向CMMI高歌猛进呢,你们想来么?

(2006.03.30)(21:24:26)evanyuan与sunshineormer说:sorry

(2006.03.30)(21:24:31)sunshineormer与所有人说:呵呵。

(2006.03.30)(21:25:27)sunshineormer与所有人说:时间差不多了。希望有机会跟大家在msn上聊。

(2006.03.30)(21:26:33)sunshineormer与所有人说:我们今天的读书会,请evan做一个小的总结如何?

(2006.03.30)(21:27:55)evanyuan与sunshineormer说:老大,作为主持,还是你来总结吧

(2006.03.30)(21:28:14)sunshineormer与所有人说:简单说两句吧。

(2006.03.30)(21:28:29)iambadboy enter this room.

(2006.03.30)(21:28:36)茉莉花 enter this room.

(2006.03.30)(21:29:04)iambadboy enter this room.

(2006.03.30)(21:30:25)evanyuan与sunshineormer说:把ddd看下来,DomainModel不是那么简单的,现在很多项目里面可能还体现不了,但我想以后中国企业做大了,应用复杂了,DDD的价值会体现得更加强烈的

(2006.03.30)(21:32:13)sunshineormer与所有人说:谢谢evan

(2006.03.30)(21:33:15)sunshineormer与所有人说:要说DDD,其实,应该更多的是先把第一个D搞出来,如果这个D能够体现软件的存在价值,那么这个东西就有搞头。

(2006.03.30)(21:34:26)sunshineormer与所有人说:关于大型应用中,是否可以应用DDD,我们的答案是肯定的。而且,也在努力给出自己的答卷。

(2006.03.30)(21:36:10)*坐看桃花开 enter this room.

(2006.03.30)(21:36:12)煜 enter this room.

(2006.03.30)(21:36:43)sunshineormer与所有人说:如果大家在读DDD和实践DDD的过程中,遇到了困难或者困惑,请让我们知道,我们会尽最大的能力帮助大家

(2006.03.30)(21:36:52)sunshineormer与所有人说:再次感谢大家光临《DDD》的读书交流会,特别感谢joe evan icecloud分享自己的心得。

(2006.03.30)(21:37:15)sunshineormer与所有人说:今天的读书会,到此结束。祝大家晚安。