Jimmy Nilsson-应用领域驱动设计和企业应用架构模式-UMLChina讲座-音频和幻灯

68 篇文章 2 订阅
2006年8月的讲座回顾,Jimmy Nilsson分享了《Applying Domain-Driven Design》中的大型项目案例和模型组织建议,探讨了DDD与MDA的关系,以及O/RMapping在内存管理中的挑战和解决方案。
摘要由CSDN通过智能技术生成

时间

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》等。

jimmynilssonphoto.jpg

applyddd.jpg

jimmy_scr.jpg

主持人

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! :-)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值