时间
2006年8月30日(周三)晚上19:00-21:00
演讲人
Jimmy Nilsson。《Applying Domain-Driven Design and Patterns : With Examples in C# and .NET》的作者。本书详细介绍了如何在.NET平台上应用Eric Evans的《领域驱动设计》思想和Martin Fowler的《企业应用架构模式》思想,Martin Fowler和Eric Evans分别为本书作序。Jimmy Nilsson的著作还有《.NET Enterprise Design》等。
主持人
Sicilia
声音记录
网盘下载(71M):http://pan.baidu.com/share/link?shareid=73667&uk=1795750932
UMLChina早期的很多国外专家讲座是通过越洋电话举行,所以音质和后来的讲座相比稍差。
幻灯片
Applying Domain-Driven Design,下载:http://umlchina.com/chat/slide/ddd.ppt
聊天记录
(18:55:47)[*umlchina_seminar]与所有人说:Jimmy Nilsson。《Applying Domain-Driven Design and Patterns : With Examples in C# and .NET》(中译本暂名《
(18:55:51)JAMES与所有人说:PPT早就可以下载了
(18:55:55)[*umlchina_seminar]与所有人说:幻灯下载:http://webseminar5.unix105.cn4e.com/webseminar/ddd.ppt
(18:56:09)justin79与所有人说:书上市了吗?
(18:56:27)[*umlchina_seminar]与所有人说:大家欢迎嘉宾
(18:56:45)[*umlchina_seminar]与所有人说:Can you hear?
(18:56:54)LT与所有人说:no
(18:57:01)*wonderqi与所有人说:yes
(18:57:02)lucky与所有人说:不是很清楚
(18:57:02)JAMES与所有人说:yes
(18:57:07)david与所有人说:yes
(18:57:16)justin79与所有人说:yes,but not clear
(18:57:18)[*umlchina_seminar]与所有人说:听不见声音请手工安装http://www.bliao.com/help/Bluesky.exe,讲座室帮助:http://www.umlchina.com/Chat/cn_guide.htm
(18:57:34)zxwu20060830与所有人说:yes,but not clear
(18:57:53)skyleau与所有人说:yes
(19:00:14)leiboincn与所有人说:声音很低
(19:00:45)*polaricebear与所有人说:装了还听不到
(19:03:15)[*umlchina_seminar]与*polaricebear说:你的语音没打开
(19:03:59)epaizuhe4与[*umlchina_seminar]说:我也听不到 )
(19:04:18)*yang_zh与所有人说:sadfsadf
(19:06:24)[*umlchina_seminar]与epaizuhe4说:你的语音也没打开
(19:06:31)[*umlchina_seminar]与epaizuhe4说:听不见声音请手工安装http://www.bliao.com/help/Bluesky.exe,讲座室帮助:http://www.umlchina.com/Chat/cn_guide.htm
(19:07:20)epaizuhe4与[*umlchina_seminar]说:我已经安装了,需要重新启动机器吗/ )
(19:07:21)epaizuhe4与[*umlchina_seminar]说:? )
系统: 主麦克风被您交给*umlchina2。
(19:08:43)[*umlchina_seminar]与epaizuhe4说:不需要吧?重新进来就可以了
系统: 主麦克风被您交给*umlchina2。
(19:10:52)tianshi612与所有人说:讲座的ppt在那下载?〉
(19:11:05)[*umlchina_seminar]与*umlchina2说:幻灯下载:http://webseminar5.unix105.cn4e.com/webseminar/ddd.ppt
(19:16:04)*umlchina2与所有人说:大家如果有什么问题也可以先提出来,一会儿有Q&A时间,再请专家回答.谢谢!
(19:17:34)*wonderqi与所有人说:`大·家·好~
(19:18:57)*wonderqi与[*umlchina_seminar]说:我想问一下Mr. Nilsson,有没有目前使用DDD方法的比较成功的大的案例
(19:19:17)*umlchina2与所有人说:嗯,记下来了,一会儿请他回答.
(19:20:00)leiboincn与所有人说:现在在第几张ppt?
(19:21:39)*umlchina2与所有人说:pg8 Table Module
系统: 主麦克风被您交给*umlchina2。
系统: 主麦克风被您交给*umlchina2。
(19:30:29)*umlchina2与所有人说:Slide10
(19:30:42)tianshi612与所有人说:DDD方法和MDA 有关系么?
(19:31:25)[*umlchina_seminar]与*umlchina2说:大家问问题也可以用中文
系统: 主麦克风被您交给*umlchina2。
系统: 主麦克风被您交给*umlchina2。
(19:32:21)*umlchina2与所有人说:11
系统: 主麦克风被您交给*umlchina2。
(19:34:55)*umlchina2与所有人说:Slide12
(19:35:11)*umlchina2与所有人说:13
(19:39:29)*umlchina2与所有人说:14
(19:41:42)*umlchina2与所有人说:15
系统: 主麦克风被您交给*umlchina2。
(19:46:04)worldheart与所有人说:when begin?
(19:47:55)*umlchina2与所有人说:16
(19:47:58)[*umlchina_seminar]与*umlchina2说:正在进行
(19:48:07)[*umlchina_seminar]与*umlchina2说:听不见声音请手工安装http://www.bliao.com/help/Bluesky.exe,讲座室帮助:http://www.umlchina.com/Chat/cn_guide.htm
系统: 主麦克风被您交给*umlchina2。
(19:50:15)blueice与所有人说:hoho,好像没认识的哈。
(19:51:22)*umlchina2与所有人说:17
系统: 主麦克风被您交给*umlchina2。
(19:52:06)tianshi612与blueice说:你进来这么快呀
(19:52:47)blueice与所有人说:。。。效率还是要的,这里聊啥的?
(19:52:58)blueice与所有人说:uml china看到了,hoho
(19:53:52)tianshi612与blueice说:http://webseminar5.unix105.cn4e.com/webseminar/ddd.ppt
(19:54:08)blueice与所有人说:问题是我这没声音 !_-
(19:54:38)tianshi612与blueice说:http://www.bliao.com/help/Bluesky.exe
(19:55:03)[*umlchina_seminar]与*umlchina2说:听不见声音请手工安装http://www.bliao.com/help/Bluesky.exe,讲座室帮助:http://www.umlchina.com/Chat/cn_guide.htm
(19:58:43)blueice与tianshi612说:!_-搞不定
(20:00:15)AmosShi与所有人说:To: 搞不定 --> You should do it earlier.
(20:01:18)tianshi612与blueice说:晕
(20:01:34)*umlchina2与所有人说:19
(20:02:11)*umlchina2与所有人说:21
(20:03:46)*umlchina2与JimmyNilsson说:*wonderqi: Is there any large scale project
(20:03:58)*umlchina2与JimmyNilsson说:successful story on the application of DDD methodology?
系统: 主麦克风被您交给*umlchina2。
(20:04:37)*umlchina2与所有人说:有没有目前使用DDD方法的比较成功的大的案例
(20:05:01)*umlchina2与JimmyNilsson说:tianshi612与所有人说:Is DDD mothodology related to MDA?DDD方法和MDA 有关系么?
(20:05:57)JimmyNilsson与所有人说:Q: "Is DDD related to MDA?"
(20:06:12)JimmyNilsson与所有人说:Well, I think they are in some sense, but the differences are big.
系统: 主麦克风被您交给*umlchina2。
(20:06:55)JimmyNilsson与所有人说:For example as I understand MDA it's relying heavily on UML as an executable UML.
(20:07:15)JimmyNilsson与所有人说:For DDD, UML is also used, but much more as a way of sketching.
(20:07:27)*umlchina2与所有人说:刘虎 在企业应用时对于资源怎么考虑使用模式?
(20:07:56)JimmyNilsson与所有人说:So how I proceed is to sketch somethinng VERY raw, then kick up my code editor, write a test and...
(20:08:11)JimmyNilsson与所有人说:...try out the sketched model, refining it in the code editor instead.
(20:08:47)*umlchina2与JimmyNilsson说:How to consider the use of Pattern of modeling Resources in enterprise application
(20:09:32)worldheart与JimmyNilsson说:Can you talk about AOP and DDD?
(20:10:22)wxohyer与所有人说:在抽取和组织领域模型,有什么好的实践吗
(20:10:25)tianshi612与所有人说:O/R Mapping 能支持多少客户端同时访问,O/R Mapping 怎么对内存进行控制
(20:13:05)*umlchina2与JimmyNilsson说:Q no.3: Is there any large scale project successful story on the application of DDD methodology?
(20:13:21)*umlchina2与JimmyNilsson说:Q No.4:Is there any good practice in the extract and orgnization domin pattern?
(20:13:46)*umlchina2与JimmyNilsson说:Q No.5: How many client side would be supported by O/R Mapping,
(20:13:57)*umlchina2与JimmyNilsson说:and how it controls its memory access?
系统: 主麦克风被您交给*umlchina2。
(20:16:21)*umlchina2与所有人说:大家稍等
(20:16:24)*wonderqi与[*umlchina_seminar]说:我想知道在维护模型完整性上有什么好的经验
(20:16:32)jarryji与jarryji说::D
(20:17:13)JimmyNilsson与所有人说:Q: "How many clients would be supported by using O/R Mapping?"
(20:17:32)JimmyNilsson与所有人说:Unfortunately the "boring" (but correct) answer is "it depends".
(20:18:02)JimmyNilsson与所有人说:There are so many factors that affects that answer. For example, how much data will be fetched...
(20:18:04)*umlchina2与所有人说:Q.6 )*wonderqi与*umlchina_seminar说:我想知道在维护模型完整性上有什么好的经验
(20:18:18)*umlchina2与JimmyNilsson说:Would you please provide us some good advice on maitaining the model integrity?
(20:18:27)JimmyNilsson与所有人说:...in each request. And how often will objects be fetched.
(20:19:46)tianshi612与所有人说:同时支持上百万登陆的用O/R Mapping来做内存大概需要多少
(20:20:21)JimmyNilsson_384与所有人说:Q: "How to maintain model integrity?"
(20:20:44)JimmyNilsson_384与所有人说:First of all, I think the aggregate pattern can help quite a lot with that.
(20:20:57)tianshi612与所有人说:data 一个月大概在1g 左右
(20:21:17)JimmyNilsson_384与所有人说:It provides you with a simplification of lessen the number of different situations to deal with...
(20:21:21)JimmyNilsson_384与所有人说:...as one thing.
(20:21:41)JimmyNilsson_384与所有人说:Another thing regarding maintainging model integrity that I'm...
(20:21:54)JimmyNilsson_384与所有人说:...very fond of is to use state transitions as a way of "guardening"...
(20:22:24)JimmyNilsson_384与所有人说:For example: It's probably OK to have an order that is too "big" as long as the user hasn't...
(20:22:37)JimmyNilsson_384与所有人说:..."confirmed" the order.
(20:23:10)JimmyNilsson_384与所有人说:But at the moment the user says "yep, this is it. Please send it", that might be the time when...
(20:23:15)JimmyNilsson_384与所有人说:...integrity must be checked.
(20:23:28)JimmyNilsson_384与所有人说:This can be compared to how a word processor works.
(20:23:47)*umlchina2与JimmyNilsson说:Q.7 If needed to support access number more than millions, and use O/R Mapping,
(20:23:49)JimmyNilsson_384与所有人说:You can misspell as much as you want, the word processor won't stop you from writing more.
(20:24:02)*umlchina2与JimmyNilsson说:what is the memory cost required?
(20:24:28)JimmyNilsson_384与所有人说:It's very common to find in business applications that they won't allow "misspellings"...
(20:24:55)JimmyNilsson_384与所有人说:What I'm saying is that I think "context" must be remembered... During work, a misspell is fine.
(20:25:12)JimmyNilsson_384与所有人说:When done, you probably don't want it there... The transition is important.
(20:26:56)JimmyNilsson_384与所有人说:Well, the memory requirement of using O/R Mapping is very different depending upon product.
(20:27:14)JimmyNilsson_384与所有人说:But lets talk a little bit about how it is regarding NHibernate.
(20:27:27)JimmyNilsson_384与所有人说:So we become concrete. :-)
(20:27:54)JimmyNilsson_384与所有人说:One problem regarding memory and NHibernate is how detecting dirty objects are dealt with.
(20:28:20)JimmyNilsson_384与所有人说:When you read an object from the database, a snapshot of that object will be stored and then used
(20:28:34)JimmyNilsson_384与所有人说:...when it's time for Flush().
(20:28:48)JimmyNilsson_384与所有人说:So at Flush() the snapshot will be compared to the current object in memory. Different?
(20:29:12)JimmyNilsson_384与所有人说:That basically means that the memory consumption became double of the loaded objects...
(20:29:24)JimmyNilsson_384与所有人说:But as always, there are solutions to that of course.
(20:29:49)JimmyNilsson_384与所有人说:For example, if you know that you aren't going to update the instance, you can take it out from the
(20:30:04)JimmyNilsson_384与所有人说:Identity Map of the session-object and therefore the snapshot will be gone.
(20:30:20)JimmyNilsson_384与所有人说:That was just one of very many aspects regarding memory consumption of course.
(20:30:41)JimmyNilsson_384与所有人说:I think the answer to your question is that if you have millions of users of your application, that
(20:31:00)JimmyNilsson_384与所有人说:might be a situation when you don't consider it too expensive to choose a more explicit or hand-
(20:31:33)JimmyNilsson_384与所有人说:written solution. But again, if you give it a try with a simulation and it works, fine, then you
(20:31:34)JimmyNilsson_384与所有人说:are happy. :-)
(20:32:50)*umlchina2与JimmyNilsson_384说:Is there any good practice in the extract and orgnization domin pattern?
(20:33:07)*umlchina2与JimmyNilsson_384说:Would you please provide us some good advice on maitaining the model integrity?
(20:33:30)JimmyNilsson_384与所有人说:Q: "Is there any good practice in the extract and orgnization domin pattern?"
(20:34:02)*umlchina2与JimmyNilsson_384说:How many client side would be supported by O/R Mapping, and how it controls its memory access?
(20:34:23)JimmyNilsson_384与所有人说:Let's see if I understood the question correctly.
(20:34:29)wxohyer与所有人说:Sometimes, object entitis is not map of table. how to deal with use Hibernate
(20:34:53)JimmyNilsson_384与所有人说:I would recommend books such as the one I mentioned before about Archetype Patterns.
(20:35:02)JimmyNilsson_384与所有人说:And Analysis Patterns from Martin Fowler.
(20:35:39)JimmyNilsson_384与所有人说:But you can and should also read books that aren't from the IT field, but about the domain at hand.
(20:35:42)JimmyNilsson_384与所有人说:That will help you a lot with organizing the domain logic!
(20:36:07)JimmyNilsson_384与所有人说:Q: "Sometimes, object entitis is not map of table. how to deal with use Hibernate"
(20:36:11)JimmyNilsson_384与所有人说:Yet another very good question! :-)
(20:36:16)JimmyNilsson_384与所有人说:True, very true.
(20:36:52)JimmyNilsson_384与所有人说:The thing about NHibernate is more to be considered for situations when you have to.
(20:37:07)JimmyNilsson_384与所有人说:If you don't need to persist your objects, then you should just be glad! :-)
(20:37:22)JimmyNilsson_384与所有人说:And then NHibernate won't come in to play.
(20:37:51)JimmyNilsson_384与所有人说:So O/R Mapping can actually be considered a necessary evil. :-)
(20:37:52)JimmyNilsson_384与所有人说:Please let me know if I misunderstood the question!
(20:38:31)wxohyer与所有人说:I use IBatisNet ,but I don't think it's very good
(20:38:47)JimmyNilsson_384与所有人说:OK! What is causing you problems?
(20:39:15)wxohyer与所有人说:It's not agility
(20:39:23)JimmyNilsson_384与所有人说:As a matter of fact, that reminds me that I should clearly state that O/R Mappers aren't a silver
(20:39:28)JimmyNilsson_384与所有人说:bullet!
(20:39:56)JimmyNilsson_384与所有人说:You mean that you have to think too much about implementation details up front?
(20:39:59)wxohyer与所有人说:yeah
(20:40:45)JimmyNilsson_384与所有人说:OK. Unfortunately I don't have much experience at all with iBATIS, but I think it especially shines
(20:40:55)JimmyNilsson_384与所有人说:when you have a database you have to use.
(20:40:57)JimmyNilsson_384与所有人说:Do you agree?
(20:41:16)wxohyer与所有人说:yes
系统: “*umlchina2”尚未打开语音或处于双工语音状态。
(20:41:44)wxohyer与所有人说:It's not allow me to change the database
(20:41:58)JimmyNilsson_384与所有人说:agile.
(20:42:18)JimmyNilsson_384与所有人说:Oops, one sentence disappeared. :-) I'll try again.
(20:42:34)JimmyNilsson_384与所有人说:Yep, so it's more the situation itself that causes you the problem, isn't it?
(20:42:56)JimmyNilsson_384与所有人说:It's definitely problematic if you aren't allowed to change the database...
(20:43:04)wxohyer与所有人说:So I use iBATIS to constructor my object
(20:43:06)JimmyNilsson_384与所有人说:But it's not uncommon... :-(
(20:43:56)JimmyNilsson_384与所有人说:Do you see another approach for your current sitaution that would have been better than using...
(20:43:59)JimmyNilsson_384与所有人说:iBATIS?
(20:44:25)JimmyNilsson_384与所有人说:(I'm definitely saying that iBATIS is right or wrong for you, I'm just curious.)
(20:44:58)wxohyer与所有人说:It's agility than Hibernate
(20:45:38)wxohyer与所有人说:now I'm doing a oil' project
(20:45:43)JimmyNilsson_384与所有人说:It's better supporting agility than Hibernate for your specific situation?
(20:46:46)JimmyNilsson_384与所有人说:I *think* iBATIS is best when you have to adopt to an old database.
(20:46:59)JimmyNilsson_384与所有人说:And/or when you want to have much control over the database access code.
(20:47:45)JimmyNilsson_384与所有人说:NHibernate is a bit more magical... And might be a better fit if you start from scratch.
(20:48:21)wxohyer与所有人说:iBATIS can constructor a object from many table or database
(20:49:10)JimmyNilsson_384与所有人说:Yep, NHibernate can too, but it quickly becomes troublesome...
(20:49:23)JimmyNilsson_384与所有人说:It's easiest if the database and the object model are as "similar" as possible.
(20:49:40)JimmyNilsson_384与所有人说:Otherwise you will put too much energy into just that piece of the whole solution.
(20:51:14)*umlchina2与所有人说:大家有问题请抓紧时间问,快到时间了,谢谢?!
(20:52:14)JimmyNilsson_384与所有人说:Q: "Any big projects built with DDD?"
(20:52:15)*umlchina2与JimmyNilsson_384说:Is there any large scale project successful story on the application of DDD methodology?
(20:52:36)JimmyNilsson_384与所有人说:I'm afraid I don't know about any REALLY large such projects...
(20:53:12)JimmyNilsson_384与所有人说:But in Eric Evans book (Domain-Driven Design) he spends a lot of time talking about patterns for
(20:53:41)JimmyNilsson_384与所有人说:such situations also. How to design the larger pieces so to say.
(20:54:04)JimmyNilsson_384与所有人说:I can't say I see why DDD wouldn't work out for really large projects as well...
(20:54:22)JimmyNilsson_384与所有人说:As long as you are very aware about the reality regarding implementation requirements.
(20:54:41)JimmyNilsson_384与所有人说:For example, if you find that an O/R Mapper will be too costly performancewise, then you have to
(20:54:44)JimmyNilsson_384与所有人说:choose another solution.
(20:55:05)JimmyNilsson_384与所有人说:But an O/R Mapper isn't at all a requirement for DDD... On the contrary.
(20:55:25)JimmyNilsson_384与所有人说:It's just a tool for helping you with the implementation, if it's suitable.
(20:55:59)JimmyNilsson_384与所有人说:So, really understanding the problem and creating a maintainable solution, I think that are goals
(20:56:18)JimmyNilsson_384与所有人说:of DDD and that is definitely extremely important for REALLY large applications as well. Perhaps
(20:56:25)JimmyNilsson_384与所有人说:just more important than for small applications. :-)
(20:56:26)*umlchina2与*wonderqi说:Do you agree? :)
(20:56:53)wxohyer与所有人说:yes
(20:58:06)*wonderqi与[*umlchina_seminar]说:如果你有一个成功的案例,那么你说服你的boss会很有把握,呵呵
(20:58:16)wxohyer与所有人说:能不能讲讲如何抽取领域模型
(20:58:39)*umlchina2与所有人说:对不起 时间到了,专家要下线了. 谢谢大家!
(20:58:49)*wonderqi与[*umlchina_seminar]说:agree, please talk about how to exact domain model
(20:59:29)*umlchina2与JimmyNilsson_384说:so. can you answer the last question as above?
(20:59:47)*umlchina2与JimmyNilsson_384说:talk someting about exact domain model
(21:00:35)*umlchina2与JimmyNilsson_384说:可能他看不到这些问题了.谢谢大家,我们今天到这里结束了.bye bye!
(21:01:02)*wonderqi与所有人说:谢谢 umlchina :)
(21:01:18)*umlchina2与*wonderqi说:也谢谢你提问题!
(21:01:26)*umlchina2与*wonderqi说:bye!
(21:01:29)wxohyer与所有人说:bye :)
(21:01:42)JimmyNilsson_384与所有人说:Bye! And thanks for talking to me! :-)