Jimmy Nilsson-應用領域驅動設計和企業應用架構模式-UMLChina講座-音訊和幻燈
時間
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! :-)