05-蘇州思科cisco crdc sz設(shè)計(jì)模式培訓(xùn)總結(jié)_第1頁(yè)
05-蘇州思科cisco crdc sz設(shè)計(jì)模式培訓(xùn)總結(jié)_第2頁(yè)
05-蘇州思科cisco crdc sz設(shè)計(jì)模式培訓(xùn)總結(jié)_第3頁(yè)
05-蘇州思科cisco crdc sz設(shè)計(jì)模式培訓(xùn)總結(jié)_第4頁(yè)
05-蘇州思科cisco crdc sz設(shè)計(jì)模式培訓(xùn)總結(jié)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余11頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

培訓(xùn)Saiqi代碼重構(gòu)不只是簡(jiǎn)單的提取方法,加強(qiáng)重用,還應(yīng)該考慮到未來有可能的變化,采取適當(dāng)?shù)哪J郊右愿脑?。由于長(zhǎng)期的歷史原因,在一些比較大的項(xiàng)目中,常常會(huì)產(chǎn)生很多的壞味道代碼,對(duì)后續(xù)的和二次開發(fā)造成了許多。更重要的是,這些壞味道的代碼會(huì)增加測(cè)試的難度,延長(zhǎng)開發(fā)周期,造成開發(fā)成本的增加。反之,如果能在代碼重構(gòu)的時(shí)候,適當(dāng)考慮未來的需求,采取更合理的設(shè)計(jì),去除代碼中的壞味道,一旦項(xiàng)目需要加入新的功能時(shí),就可以在很短的時(shí)間里完d架構(gòu)設(shè)計(jì)絕不是單純的代碼設(shè)計(jì),而是應(yīng)該充分考慮未來需求的變化。因?yàn)樘岢鲂枨蟮娜宋幢厥枪潭ǖ模煌目蛻魰?huì)提出不同的需求,而且同一位客戶在不同的時(shí)間想法也會(huì)發(fā)生改變。這就要求架構(gòu)的設(shè)計(jì)者能夠充分考慮可能存在的變化,并在開發(fā)過程中采用合理的架構(gòu)模式。關(guān)于這PRD式。敏捷開發(fā)使項(xiàng)目組能夠隨時(shí)適應(yīng)需求的變化,好的架構(gòu)設(shè)計(jì)也同樣能夠適應(yīng)隨時(shí)可能出現(xiàn)的變化。ce設(shè)計(jì),并負(fù)責(zé)新員工的培訓(xùn)。講師團(tuán)隊(duì)的成員是分級(jí)別的,如助教、講師、大師等等。此次架構(gòu)設(shè)計(jì)的主講老師的級(jí)別就是大師級(jí)。講師團(tuán)隊(duì)主要承擔(dān)員工的技能培訓(xùn),增強(qiáng)gese/3/3ergeser/3的geer,學(xué)員:SaiqiShi師琦培訓(xùn)心如何做到一個(gè)優(yōu)秀的設(shè)計(jì)呢?項(xiàng)目的需求變化是必然的,無法做到和遏制一點(diǎn),首先一些基礎(chǔ)的設(shè)計(jì)原則如設(shè)計(jì)開閉原則(OCP)等需要遵循:創(chuàng)建和使用分離(解耦具體依賴低成員的權(quán)限,類之間的耦合越弱,越有利于復(fù)用,修改某一個(gè)類的某個(gè)成員不在設(shè)計(jì)復(fù)用中盡量使用動(dòng)態(tài)綁定,少用靜態(tài)綁定綁定。這里特別要注意的是少 培訓(xùn)總Peter這次培訓(xùn),老師主要從設(shè)計(jì)思想、設(shè)計(jì)模式、系統(tǒng)重構(gòu)等方面進(jìn)行了講解和引導(dǎo)。通過這次培訓(xùn),我覺得最重要的不是學(xué)習(xí)了一些具體的設(shè)計(jì)和開發(fā)技術(shù),而是從思想上對(duì)開發(fā)設(shè)計(jì)有了一些新的認(rèn)識(shí),通過這些新的認(rèn)識(shí),讓我知道了提高開發(fā)水平的途徑。通過這次培訓(xùn),我在以下幾個(gè)方面有了新的認(rèn)識(shí)和Arnold參加了為期兩天的設(shè)計(jì)模式的培訓(xùn)(時(shí)間有些緊),課程的內(nèi)容相當(dāng)豐富實(shí)用。通過這次培訓(xùn)使一下思想得到一次凈化,同時(shí)也認(rèn)識(shí)到存在的問題,對(duì)我以后的工作有很好的指導(dǎo)設(shè)計(jì)價(jià)值觀深化。什么優(yōu)秀的設(shè)計(jì),這是開發(fā)一直比較關(guān)心的問題也是一直在努力的方向,但是要真正做到優(yōu)秀還不是很容易。在平時(shí)的開發(fā)過程中也許知道了一些原則和方法,但是并沒有真正提升到理論的高度。通過這個(gè)課程的培訓(xùn),使的知識(shí)有了一些系統(tǒng)化的梳理,同時(shí)講師通過實(shí)際的開發(fā)中的例子結(jié)合理論,讓原有一些模糊的認(rèn)識(shí)有了一個(gè)清晰過程,使自己有豁然開朗的感覺。當(dāng)然講師也提過,不可能通過一次兩次培訓(xùn)能掌握所有的知識(shí),關(guān)鍵的是讓學(xué)會(huì)了思考,這個(gè)對(duì)接下來寫代碼:開放-封閉原則(OCP):要求增加新功能時(shí)不修改原有代碼,以免因?yàn)轫?xiàng)目過大而使代碼依賴倒置原則(DIP):應(yīng)該倒置依賴關(guān)系,把多個(gè)模塊依賴一個(gè)固定的抽象或接口,針對(duì)單一職責(zé)原則(SRP):就一個(gè)類或方法而言,它應(yīng)該僅有一個(gè)職責(zé),不能像所謂“上帝類”里氏替換原則(LSP):子類只是擴(kuò)展而不是替換父類的功能,福州程序中已有的模塊優(yōu)秀設(shè)計(jì)的幾點(diǎn)要素如發(fā)現(xiàn)變化、裝變化,變化,創(chuàng)建與使用離實(shí)現(xiàn)綁定,關(guān)注度,耦具體依賴等這些基本則在開發(fā)的過程要牢記設(shè)計(jì)模式的辯證理解:在設(shè)計(jì)的時(shí)候,除了要掌握必要的設(shè)計(jì)原則外還需要掌握一些成方法,而設(shè)計(jì)模式正式在這樣的情況下產(chǎn)生的。每一種設(shè)計(jì)模式都有一個(gè)可能要多種設(shè)計(jì)模式配合使用和適當(dāng)?shù)母倪M(jìn)深化。這需要熟悉常用的設(shè)計(jì)模式,了解他的背景和使用范圍,然后應(yīng)用的實(shí)際開發(fā)中去。這個(gè)在以后的工作學(xué)習(xí)中將會(huì)認(rèn)真學(xué)習(xí)研究java常用的設(shè)計(jì)模式和架構(gòu)設(shè)計(jì)方面的知識(shí)并努力應(yīng)用的實(shí)際開發(fā)中。代碼重構(gòu):這個(gè)對(duì)開發(fā)來說一直是個(gè)嚴(yán)肅的問題,許多代碼由于不是自寫的導(dǎo)不敢(不想)修改,導(dǎo)致代碼無限膨脹。到最后這個(gè)代碼沒有人愿意改動(dòng),講師列出了幾種不良代碼的類型并提出一些解決方案。同時(shí)在培訓(xùn)材料中列出了一份比較全面的不良代碼的種類以及解決方案,我覺得這個(gè)對(duì)開發(fā)來說是比較重要的,在實(shí)際開發(fā)的過程中要時(shí)常檢驗(yàn)自己是不是有這些不良的行為,如果有及時(shí)改正,這樣堅(jiān)持下來會(huì)對(duì)代碼期有的。從這兩天的培訓(xùn)課程中學(xué)到了很多知識(shí),同時(shí)也讓我清醒的認(rèn)識(shí)到在以后的工作中要逐步精通設(shè)計(jì)模式并應(yīng)用到實(shí)踐中去,同時(shí)提高自己寫代碼的,避免出現(xiàn)不良代碼出現(xiàn)壞,Robert 老師在兩天的培訓(xùn)中重點(diǎn)講解了TemplateMethod,Strategy,ChinaofResponsibility,F(xiàn)a?ade等幾種典型的設(shè)計(jì)模式及其應(yīng)用,給我印象最深的是Strategy和Fa?ade模式,這兩種模式解決了我以前寫程序中最經(jīng)常碰到的困惑:3總的來說,次培訓(xùn)幫了些開發(fā)程中的問題并且給出一些解決案,我Brown可擴(kuò)靈活可單一開閉里氏替換接口原依賴倒轉(zhuǎn)找出應(yīng)用中可能需要變化之處,把它們獨(dú)立出來,不要和那些不需要變化的代碼交織在一起抽象穩(wěn)定接口,針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)分離變化維度,單一職多用組合,少用創(chuàng)建與使用預(yù)先設(shè)計(jì),滿足客此次培訓(xùn),讓我從意識(shí)上對(duì)于設(shè)計(jì)有了一個(gè)新的認(rèn)識(shí)。設(shè)計(jì)模式本身是無關(guān)重要的,重要的是在于需要認(rèn)真去設(shè)計(jì)模式培訓(xùn)心得----Sea2013年10月的23,24日參加了公司組織的<<設(shè)計(jì)模式>>培訓(xùn).本來對(duì)本次培訓(xùn)沒報(bào)太大希望,公司也組織過一系列有關(guān)設(shè)計(jì)模式的培訓(xùn),我本人也作為一名presenter介紹了Proxy模式,感 全估計(jì)錯(cuò)誤,看來專業(yè)和業(yè)余還是有著不小差距阿,,的給一份大驚喜,其實(shí),本次課程的是,重構(gòu)和設(shè)計(jì),如:為什么需要好的設(shè)計(jì),設(shè)計(jì)的五大原則,重這次課程完全聯(lián)系實(shí)際,提供了幾個(gè)案例,讓分組并給解決方案,然后在的工作實(shí)際,又介紹了已有代碼項(xiàng)目的一些知道原則和注意事項(xiàng),非常實(shí)用,尤給了我很大啟發(fā),在培訓(xùn)結(jié)束的第二天,我就很自然的將<<職責(zé)鏈>>模式應(yīng)用到了一個(gè)項(xiàng)目里.Smith2天的設(shè)計(jì)模式培訓(xùn)結(jié)束了總體感覺收益良多老師并沒有照本宣科理論式的講解,而是由淺入深再結(jié)合實(shí)踐來講解設(shè)計(jì)模式,這樣能更深入的了解模式的具體含義以及應(yīng)用場(chǎng)景,和自己學(xué)習(xí)書本知識(shí)有很明顯的效果提高.小小的遺憾就是時(shí)間太短,只是講了其中的一部分,后面階段的幾個(gè)模式也是不夠深入.開發(fā)過程中常常伴隨著客戶需求的變化,有些是根本預(yù)料不到的,結(jié)合工作的東西,需要先做出一個(gè)基礎(chǔ)版本,在運(yùn)用過程中他們才會(huì)知道自己要什么東西,要怎樣改動(dòng).面對(duì)著這些大量的需求改動(dòng),開發(fā)應(yīng)該抱著歡迎的態(tài)度,同時(shí)也需要的架構(gòu),代碼具有良好的適應(yīng)能力,減輕以后的擴(kuò)展,修改和帶來的額外努力。一個(gè)良好的設(shè)計(jì)應(yīng)在課程中,印象比較深刻的倒不是學(xué)習(xí)了幾種模式,加強(qiáng)解決問題的能力,模式只是工具,而且不一定是處處有用的。在平時(shí)的工作中由于項(xiàng)目緊急,人手不夠,會(huì)比有時(shí)候太注重反而會(huì)過度設(shè)計(jì),有時(shí)候可能為了一些其他原因(譬如性能),還要犧牲Bravo兩天的設(shè)計(jì)模式課程,在很大程度上改變了我做功能的思路。以前往往拿到需求思考子,總是不盡如人意。聽胃課程,領(lǐng)悟到自己忽略了設(shè)計(jì),特別是對(duì)一些原則的理解。像開設(shè)計(jì)模式培訓(xùn)心Jession下是一些感想。激烈中,卻不得不開始下一個(gè)設(shè)計(jì)模式的探索。 影響已經(jīng)深深的心間。正是因?yàn)檫@種技術(shù)負(fù)債,需要在平時(shí)的編碼中注意計(jì)模式恰好為重構(gòu)提供了技術(shù)的支持??梢赃x擇合Mark設(shè)計(jì)學(xué)習(xí)固定的設(shè)計(jì)模式招數(shù),了解UML圖,以及每一種大致的代碼結(jié)構(gòu),以及大致應(yīng)用場(chǎng)(初級(jí))模式掌握設(shè)計(jì)模式背后的設(shè)計(jì)思想,whyandthen,在恰當(dāng)是的時(shí)候恰當(dāng)運(yùn)用(能當(dāng)大任關(guān)于代碼以及重構(gòu)優(yōu)秀的設(shè)計(jì)以前也過別人的代碼,發(fā)現(xiàn)壞味道的代碼的可讀性很差,遺留代碼加上新代碼糾結(jié),不設(shè)計(jì)模式解Huan---課程心通過兩天的課程學(xué)習(xí),對(duì)設(shè)計(jì)模式有了更深的了解。時(shí)間緊湊,老師沒有全部講解完24個(gè)設(shè)計(jì)模式,但老師通過具體事例給講解了幾個(gè)典型首先老師從需求變化入手,作為程序開發(fā)者,需求的變更往往是痛苦的源泉。但還是必須要擁抱變化,不能對(duì)變化持否定消極態(tài)度。因?yàn)樵谡鎸?shí)的世界中使用的程序必須進(jìn)行變更,否則它在環(huán)境中的作用就會(huì)越來越小。應(yīng)該強(qiáng)調(diào)通過提高團(tuán)隊(duì)的綜合能力,設(shè)計(jì)的彈性和流程的靈活性來適應(yīng)變化。在培訓(xùn)過程中,老師也是通過一個(gè)個(gè)用例,最初它們的需求很簡(jiǎn)單,通過不斷演變,需求越來越復(fù)雜,通過這些用例學(xué)習(xí),讓學(xué)會(huì)如何應(yīng)對(duì)變化。老師首先給介紹了幾個(gè)設(shè)計(jì)原則,因?yàn)樵O(shè)計(jì)模式的思想通常都是跟這些設(shè)計(jì)原則相關(guān)的。老師用一個(gè)簡(jiǎn)單認(rèn)證的例子,引出開閉原則—對(duì)擴(kuò)展開放,對(duì)修改封閉。找出應(yīng)用中可能需要變化之處,把它們獨(dú)立出來,不要和那些不需要變化的代碼混在一起。在實(shí)現(xiàn)的過程中,應(yīng)該把會(huì)變化的部分取出并封裝起來,以便以后可以輕易地修改和擴(kuò)充此部分,而不影響不需要變化的其他部分。老師由此引出了emplaemethod設(shè)計(jì)模式,模板方法模式實(shí)現(xiàn)一個(gè)算法的不變部分,并將可變的部分留給子類來實(shí)現(xiàn)。老師接下來引出與模板方法模式類似的一個(gè)模式-策略模式,模板方法模式使用繼承來改變算法的一部分,策略模式使用委托的方法改變整個(gè)算法的行為。接下來老師還給介紹了一些其他的設(shè)計(jì)原則,比如針對(duì)接口編程原則,單一職責(zé)原則,多用組合、少用繼承原則和創(chuàng)建與使用相分離的原則。再介紹完這些設(shè)計(jì)原則時(shí),老師以一個(gè)日志系統(tǒng)為例子,引入觀察者模式+單例模式+策略模式。日志可能寫入多個(gè)目的地,采用觀察者模式,通過訂閱/取消訂閱在運(yùn)行時(shí)綁定變量,運(yùn)行時(shí)遍歷列表寫入多個(gè)目的地;當(dāng)某個(gè)事情發(fā)生時(shí),需要向一系列變化著的對(duì)象發(fā)通知,可以考慮此模式;觀察者模式有推和拉兩種模式,建議多用推模式。多種格式化方法和多種輸出目的地,采用2個(gè)策略模式,可以應(yīng)對(duì)以后可能的格式化方法變化和輸出目的地變化;策略模式將算法的選擇和算法的實(shí)現(xiàn)分離,當(dāng)代碼中出現(xiàn)很長(zhǎng)的判斷條件時(shí),就要考慮是否可以需要用策略模式。老師在講解這些例子的過程中,還穿插介紹了創(chuàng)建型模式,引入了工廠模式,單例模式等,如何能夠滿足使用與創(chuàng)建分離的原則。接著老師以電腦主板為例,引入適配器模式,適配器分為類適配器和對(duì)象適配器,類適配器采用繼承的方式實(shí)現(xiàn),而對(duì)象模式采用組合的方式實(shí)現(xiàn),實(shí)際應(yīng)用中建議用組合的方式實(shí)現(xiàn)。然后以自來水廠為例,引入責(zé)模式,責(zé)模式將各模塊串連起來。Sevlet架構(gòu)中的過濾器,就是責(zé)模式的典型例子。老師同時(shí)還簡(jiǎn)單介紹了一下Prxy模式和裝飾者模式,由于時(shí)間關(guān)系都沒有很展開來講。第二天,老師給介紹了如何在已有代碼中去應(yīng)用模式,或者說如何在修改或重構(gòu)過程中去應(yīng)用設(shè)計(jì)模式,老師通過一個(gè)真實(shí)的例子,講述了一個(gè)電信部門的例子,主要場(chǎng)景是做一個(gè)故障記錄系統(tǒng),起初這個(gè)系統(tǒng)的需求比較簡(jiǎn)單,接下來需求不斷變更,但他們的程序員沒有很好的去設(shè)計(jì)如何適應(yīng)這些變化,而是很簡(jiǎn)單地在原有代碼中添加條件判斷語(yǔ)句去實(shí)現(xiàn)新的需求,最后導(dǎo)致這個(gè)系統(tǒng)很難擴(kuò)展,而且很難,老師希望能夠給出一個(gè)比較好的解決方案。老師通過這個(gè)實(shí)例給講解了如何應(yīng)用設(shè)計(jì)模式去適應(yīng)這些需求的變更,如何讓遺留代碼更加容易。同時(shí),在修改遺留代碼中,代碼重構(gòu)時(shí),關(guān)注代碼的壞味道,比方重復(fù)代碼,過長(zhǎng)方法,過大類,分支語(yǔ)句,數(shù)據(jù)泥團(tuán)等,要對(duì)這些代碼進(jìn)行分析重構(gòu)。老師給了一張cheatsheet,上面記通過這兩天的設(shè)計(jì)模式培訓(xùn),雖然簡(jiǎn)短,但感覺充實(shí),對(duì)自己在設(shè)計(jì)模式方面有很大提高,也加深了自己對(duì)設(shè)計(jì)模式的理解。相信在以后的工作中,能夠用到設(shè)計(jì)模式去解決遇到的問題。設(shè)計(jì)模式課程總結(jié)Jojo設(shè)計(jì)模式是大牛們對(duì)于開發(fā)的經(jīng)驗(yàn)的高度總結(jié),確實(shí)應(yīng)該常常復(fù)習(xí)這樣的經(jīng)驗(yàn),提高自己對(duì)于開發(fā)的熟練度,常常把“設(shè)計(jì)”放在心中,可以很大程度上復(fù)用前人的經(jīng)驗(yàn),避免重復(fù)造。設(shè)計(jì)上去考慮開發(fā),會(huì)讓有更強(qiáng)的應(yīng)對(duì)變化的能力。同時(shí),能很大程度上提高的生產(chǎn)效率。這是一種自身能提高的有效的方法。同時(shí)也能提高對(duì)于開發(fā)的熱愛,讓日常工作不再是這次的課程還是很有效的。一個(gè)課程最大的意義在于是否引起了參加課程的人的思考,而不在于這個(gè)課程本身能學(xué)習(xí)到多少內(nèi)容。這次的課程雖然只有兩天,但是卻能讓切身Phoenix一時(shí)失察,過于大刀闊斧,以至前蹄,造成了我個(gè)人Webex歷史中的唯一一個(gè)RT,并因此割傷自己是掌握的問題,不是本身的問題。之后,在Orion中,waf被再次重構(gòu),幸而沒有因此,在這次培訓(xùn)之前,聽說是的課,頓時(shí)很有,很期待。兩天課下來,果然,一如模式的思想來解決。而同時(shí),在的代碼中也有不少不知不覺中應(yīng)用到的設(shè)計(jì)模式,例如AS關(guān)于何時(shí)運(yùn)用模式,認(rèn)識(shí)是:在開始動(dòng)手寫代碼之前,不要單純地簡(jiǎn)單堆砌,應(yīng)該思考一下,這里的不變部分是什么,易變部分是什么,封裝變化、接口、預(yù)留擴(kuò)展空間。這樣,才能提高系統(tǒng)的擴(kuò)展性和自適應(yīng)能力,在未來面對(duì)改變時(shí)不至于手忙腳亂,堆砌出更的代碼后,我將一如既往將優(yōu)秀設(shè)計(jì)的思想到team的程序設(shè)計(jì)中,希望能站在這些優(yōu)秀的代碼、模式基礎(chǔ)上,學(xué)習(xí)、臨摹、應(yīng)用,也能寫出屬于自己的、優(yōu)美如散文般的代碼來。Ranger塊的例子,因?yàn)樾枨蟛粩嘧兓?,從沒有運(yùn)用設(shè)計(jì)模式,到運(yùn)用TemplateMethod,再到運(yùn)用Strategy模式,來告訴如何讓的設(shè)計(jì)具備抵抗力,來面對(duì)多變的需求,在這個(gè)案例中還一個(gè)LogFrameworkStrategy,Observer,TemplateMethod,SimpleFactory,F(xiàn)acade等設(shè)計(jì)模式的認(rèn)識(shí),在這個(gè)案例的練習(xí)中,組的方案被最佳方案。后來老師還給重點(diǎn)講解了面象的幾個(gè)設(shè)計(jì)原則,如開閉原則,單一指責(zé)原則,依賴倒置原則,組合優(yōu)Observer模式和Ad

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論