版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、設(shè)計(jì)模式與工程實(shí)踐設(shè)計(jì)模式與工程實(shí)踐王翔王翔(vision wang)architect (.net, xml, pki)2009-01-17個(gè)人資料王王 翔翔軟件架構(gòu)師,主要從事.net、xml、公鑰基礎(chǔ)設(shè)施的開發(fā)。專注于數(shù)據(jù)(尤其是 xml信息)的生產(chǎn)、加工、交換、提煉等過程。此外,參與了一系列有關(guān)應(yīng)用密碼技術(shù)和 pki環(huán)境保護(hù)信息系統(tǒng)數(shù)據(jù)安全的項(xiàng)目。 最喜歡數(shù)學(xué),平常案頭總是擺一本數(shù)學(xué)練習(xí)題。閑暇時(shí)間喜歡寫作,通過發(fā)表多種技術(shù)文章與國內(nèi)外同行交流各種數(shù)據(jù)應(yīng)用經(jīng)驗(yàn)。 項(xiàng)目間隙經(jīng)常到各海濱城市徒步旅行、野外露營、出海航行、極限運(yùn)動(dòng)。 座右銘:天行健,君子以自強(qiáng)不息。agenda 簡介 gof
2、23與工程實(shí)踐 案例分析 其他簡介 當(dāng)你要開發(fā)一個(gè)小型的系統(tǒng),整個(gè)系統(tǒng)只有兩三人開發(fā),系統(tǒng)活不過5年,商業(yè)邏輯單純,程序代碼不超過萬行,這時(shí),你隨便做,影響不大。 反之,若要架構(gòu)大型系統(tǒng),你需要慎思,套用模型與架構(gòu),將前人的經(jīng)驗(yàn)當(dāng)作基石,這樣系統(tǒng)設(shè)計(jì)才不至于陷入發(fā)散。 然而,你不會(huì)一開始就做大系統(tǒng),風(fēng)險(xiǎn)太高。所以,要練習(xí),最好從小系統(tǒng)開始使用模型與架構(gòu),如此才能檢討與學(xué)習(xí),日后方能在大系統(tǒng)中自如運(yùn)用。設(shè)計(jì)模式基于c#的工程化實(shí)現(xiàn)及擴(kuò)展序 胡百敬簡介 系統(tǒng)分析與設(shè)計(jì)是門藝術(shù),問題的解法與何為問題是交織的,而各模式的搭配使用技巧不同,存乎一心,需要巧思與反復(fù)琢磨,方可有好的解法。本書立意明確,除了
3、告訴你問題的類型與解法,還提供了可以立即演繹的程序代碼。相信這本案頭的工具書可以提供你一個(gè)不錯(cuò)的深思起點(diǎn),造就有彈性、能擴(kuò)充、易維護(hù)的軟件實(shí)力。設(shè)計(jì)模式基于c#的工程化實(shí)現(xiàn)及擴(kuò)展序 胡百敬簡介 設(shè)計(jì)模式可以當(dāng)做軟件開發(fā)中的獨(dú)孤九劍。在軟件設(shè)計(jì)中最大的敵人就是需求不斷的變化變化,需求變化無休無止,軟件交付日期也就無限期的延遲。我們無法做到以不變應(yīng)萬變,但如果能提前預(yù)見到一些變化,就能用很小的代價(jià)來應(yīng)對劇烈的變化。gof總結(jié)的經(jīng)典設(shè)計(jì)模式雖只有23種,但不管是創(chuàng)建型模式、結(jié)構(gòu)型模式還是行為型模式,歸根結(jié)底都是在尋找軟件中可能的變化,并封裝這些變化?!傲蠑硻C(jī)先”為設(shè)計(jì)模式精髓之一,只不過這里的敵是需
4、求的變化而已。 對于設(shè)計(jì)模式如果不能夠做到靈活自如的運(yùn)用,不僅威力大減,甚至于弄巧成拙,“活學(xué)活用”為設(shè)計(jì)模式精髓之二。設(shè)計(jì)模式基于c#的工程化實(shí)現(xiàn)及擴(kuò)展序 李會(huì)軍簡介 設(shè)計(jì)模式無處不在 模式不是框架,不能套用 模式也不是過程,模式也不是簡單的“問題的解決方案” 系統(tǒng)的設(shè)計(jì)也不是含有設(shè)計(jì)模式就好 更不是含有越多的設(shè)計(jì)模式就越好簡介 真正為軟件設(shè)計(jì)界帶來系統(tǒng)化設(shè)計(jì)模式思維的是design patterns:elements of reusable object-oriented software 此后各個(gè)領(lǐng)域開始出現(xiàn)各種模式化思維 成例 數(shù)據(jù)及數(shù)據(jù)庫 架構(gòu) 實(shí)時(shí)系統(tǒng) 集成 web / ajax
5、簡介 反模式的思維 決定在項(xiàng)目中使用哪一種設(shè)計(jì)模式 一位開發(fā)人員通過介紹希望在一項(xiàng)工程中使用設(shè)計(jì)模式 開發(fā)人員通過包括設(shè)計(jì)模式的最佳實(shí)踐來改進(jìn)項(xiàng)目的渴望 開發(fā)人員天生的好奇心驅(qū)使他利用這個(gè)項(xiàng)目來研究設(shè)計(jì)模式 項(xiàng)目中應(yīng)用了所有知名的設(shè)計(jì)模式 項(xiàng)目團(tuán)隊(duì)和交付的應(yīng)用程序由于不自然地引入太多設(shè)計(jì)模式而遭受損失。不必要的復(fù)雜性會(huì)從已經(jīng)完成的工作量、開發(fā)團(tuán)隊(duì)了解發(fā)生事情的能力、應(yīng)用程序的實(shí)際性能和功能的正確性等方面影響開發(fā)成果 設(shè)計(jì)模式是專業(yè)知識的主要來源,盡管使用他們的效果很好,但是全部使用他們就未必也是好的簡介 實(shí)際解決方案 設(shè)計(jì)模式的描述包含了使用模式的目標(biāo)語境,必須考慮如何確保設(shè)計(jì)模式匹配項(xiàng)目 設(shè)
6、計(jì)模式不是來源于當(dāng)某人閱讀了一本設(shè)計(jì)模式的著作后,問:“我可以把這個(gè)設(shè)計(jì)模式使用在什么地方?”而是來源于某人尋找已發(fā)現(xiàn)問題的解決方案gof23與工程實(shí)踐creationalabstract factorybuilder factory method prototype singleton creates an instance of several families of classesseparates object construction from its representationcreates an instance of several derived classesa full
7、y initialized instance to be copied or cloneda class of which only a single instance can existstructural adapterbridgecompositedecoratorfacadeflyweightproxymatch interfaces of different classesseparates an objects interface from its implementationa tree structure of simple and composite objectsadd r
8、esponsibilities to objects dynamicallya single class that represents an entire subsystema fine-grained instance used for efficient sharingan object representing another objectbehavioral corcommand interpreter iterator mediator memento observer state strategy template methodvisitor a way of passing a
9、 request between a chain of objectsencapsulate a command request as an objecta way to include language elements in a programsequentially access the elements of a collectiondefines simplified communication between classescapture and restore an objects internal statea way of notifying change to a numb
10、er of classesalter an objects behavior when its state changesencapsulates an algorithm inside a class defer the exact steps of an algorithm to a subclassdefines a new operation to a class without changegof23與工程實(shí)踐 設(shè)計(jì)模式是一種設(shè)計(jì)思想,表達(dá)這種思想最簡潔的方式就是uml + demo就夠了。 但demo和實(shí)際工程應(yīng)用還是有一段差距的,原因不多,但每一個(gè)都需要在demo之余好好考慮:
11、此外,設(shè)計(jì)模式的一個(gè)亮點(diǎn)就是提高代碼的可重用性,如果設(shè)計(jì)一套比較適合實(shí)際工程使用的設(shè)計(jì)模式庫,可以節(jié)省八股式反復(fù)demo的工作。gof23與工程實(shí)踐 工程中設(shè)計(jì)模式總是結(jié)合某些開發(fā)語言 而每種語言本身都有自己的特點(diǎn) c+、c#、java、delphi vb、visual fox、cobol sql、xquery javascript、vbscript、actionscript、powershell python、perl、ruby、php f# xml、html、bpel gof23與工程實(shí)踐 領(lǐng)域建模階段的模式化特征分析gof23與工程實(shí)踐 的章節(jié)安排gof23與工程實(shí)踐 工程中實(shí)踐設(shè)計(jì)模式
12、的感受 打破一些固有的套路 用自己習(xí)慣的語言以簡潔、直接的手段解決易于變化的問題 不要僅僅將依賴關(guān)系定格在對象體系,更多考慮到應(yīng)用開發(fā)、運(yùn)維不同生命周期中參與者的工作特點(diǎn),將依賴拓寬到對象、配置體系、數(shù)據(jù)存儲和服務(wù)體系 面向web、面向混合信息體系、面向服務(wù)gof23與工程實(shí)踐 開發(fā)人員個(gè)性與設(shè)計(jì)模式的關(guān)系 程序開發(fā)人員在對待自己工作的時(shí)候總或多或少有些“至于至善”得心結(jié) 代碼、類庫、應(yīng)用框架不僅僅是老板和項(xiàng)目經(jīng)理眼中的產(chǎn)品,更是我們敝帚自珍的工作成果 但修改自己的代碼,尤其是因?yàn)樯嫌涡枨蟛淮_定帶來這種壓力的時(shí)候,總不是那么愉快地經(jīng)歷 我們要借鑒并應(yīng)用那些成熟的套路,將變化抽象并集中在幾個(gè)點(diǎn),
13、然后把他們交給運(yùn)維人員來處理,而我們更多把時(shí)間放在創(chuàng)造性工作 模式是現(xiàn)成的,但實(shí)現(xiàn)套路您自己的案例分析案例分析 收集所有可能涉及的運(yùn)行系統(tǒng)案例分析 多種方式“圈”定涉及的系統(tǒng)案例分析案例分析案例分析主要集成模式 p2p可用技術(shù)p2p模式下的應(yīng)用特點(diǎn)ado、ado.net通過ado/ado.net完成對關(guān)系數(shù)據(jù)庫、活動(dòng)目錄的訪問和修改dts/ssis直接從某系統(tǒng)的數(shù)據(jù)庫層次向目標(biāo)系統(tǒng)寫入信息com+在需要嚴(yán)格事務(wù)性保證的環(huán)境下,通過com+完成包括復(fù)雜邏輯的集成工作web service通過專用的ws定義,實(shí)現(xiàn)面向具體數(shù)據(jù)結(jié)構(gòu)基于uri的訪問案例分析主要集成模式 message broker可用
14、技術(shù)message broker模式下的應(yīng)用特點(diǎn)企業(yè)定制的交換平臺提供對包括oracle、sql server、mysql、wmi、file、adsi、msmq、messageq、mq等各種數(shù)據(jù)源的支持,并提供統(tǒng)一基于配置的處理能力,最好默認(rèn)提供線程池化的并行處理能力,有獨(dú)立的監(jiān)控手段和監(jiān)控工具、提供豐富的定制處理流程apidts/ssis提供豐富的管理、配置、集成和定制開發(fā)的api,有mom和wmi等完善的監(jiān)控機(jī)制,有良好的結(jié)構(gòu)化異常處理能力,有友好的設(shè)計(jì)界面com+可以提供不同dcom對象和支持com接口對象的開發(fā),適于處理對遺留系統(tǒng)的集成封裝biztalk server適于大型的brok
15、er環(huán)境,與活動(dòng)目錄環(huán)境集成,具有良好的高可用能力,配置、管理、監(jiān)控、消息追蹤、數(shù)據(jù)映射和集成流程編排都有不錯(cuò)的支持。不過相應(yīng)的學(xué)習(xí)成本較高,對運(yùn)維人員技術(shù)要求也比較高。案例分析主要集成模式 message broker可用技術(shù)企業(yè)定制的交互平臺或biztalk server作為route/orchestration的機(jī)制,同時(shí)提供必要的公共服務(wù)provider;調(diào)用接口采用支持route功能的wcf;如果涉及比較復(fù)雜的數(shù)據(jù)流轉(zhuǎn),而且采用大型中間件產(chǎn)品過于復(fù)雜的話,可以擴(kuò)展wf實(shí)現(xiàn)控制流轉(zhuǎn);案例分析主要集成模式 dead letter可用技術(shù)message broker模式下的應(yīng)用特點(diǎn)queu
16、e + 自定義補(bǔ)發(fā)處理queue自己可以對發(fā)送失敗的消息臨時(shí)落地到本地其他隊(duì)列,此時(shí)可以用自定義的補(bǔ)發(fā)進(jìn)程處理。biztalk messageboxbiztalk會(huì)把消息先持久化,如果交易過長或者存在錯(cuò)誤,可以通過訪問messagebox獲得發(fā)送失敗的信息,然后根據(jù)biztalk的發(fā)送策略定義是否需要重發(fā)、重發(fā)何種特征的消息。ssis/dts在交換過程中通過定義異常流程,將發(fā)送失敗的消息保存在中間表,然后通過定制的sql job定期檢查重新發(fā)送。案例分析 結(jié)合交換情景分析案例分析 增加約束條件broker采用sql server 2005的ssis,他直接通過數(shù)據(jù)集成訪問預(yù)定接收的數(shù)據(jù)庫,并且將信息寫入web門戶的內(nèi)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度防火門綠色建筑認(rèn)證合同2篇
- 二零二五版海上貨物運(yùn)輸合同適用范圍與船舶建造合同3篇
- 二零二五版全方位房產(chǎn)及土地使用權(quán)買賣合同3篇
- 二零二五年電商代運(yùn)營用戶運(yùn)營與社區(qū)建設(shè)合同3篇
- 二零二五年電子商務(wù)平臺店長勞動(dòng)合同規(guī)定2篇
- 二零二五年電子商務(wù)平臺安全風(fēng)險(xiǎn)評估與管理咨詢合同3篇
- 二零二五版寄賣合同范本:電子產(chǎn)品寄賣代理合同2篇
- 二零二五版共有產(chǎn)權(quán)房買賣合同范本6篇
- 二零二五版文化創(chuàng)意產(chǎn)業(yè)合伙合同規(guī)范文本3篇
- 基于二零二五年度市場趨勢的產(chǎn)品研發(fā)合同2篇
- GB/T 24474.1-2020乘運(yùn)質(zhì)量測量第1部分:電梯
- GB/T 12684-2006工業(yè)硼化物分析方法
- 定崗定編定員實(shí)施方案(一)
- 高血壓患者用藥的注意事項(xiàng)講義課件
- 特種作業(yè)安全監(jiān)護(hù)人員培訓(xùn)課件
- (完整)第15章-合成生物學(xué)ppt
- 太平洋戰(zhàn)爭課件
- 封條模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖漿
- 貨代操作流程及規(guī)范
- 常暗之廂(7規(guī)則-簡體修正)
評論
0/150
提交評論