1. 程式人生 > 實用技巧 >Jimmy Nilsson-應用領域驅動設計和企業應用架構模式-UMLChina講座-音訊和幻燈

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

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