架構(gòu)師
其他
軟件設(shè)計(jì)
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

軟件設(shè)計(jì)模式最佳實(shí)戰(zhàn)

K. Kang

開發(fā)部總監(jiān)

北京航空航天大學(xué),碩士。
畢業(yè)后即進(jìn)入北大方正進(jìn)行軟件開發(fā),先后在北大方正技術(shù)研究院、方正電子、方正電子政務(wù)科技有限公司、方正國(guó)際、明博教育科技有限公司工作,擔(dān)任高級(jí)程序員、高級(jí)系統(tǒng)分析員、系統(tǒng)架構(gòu)師、開發(fā)部總監(jiān)等職務(wù);擁有10多項(xiàng)國(guó)家發(fā)明專利。5年培訓(xùn)經(jīng)驗(yàn),主要從事企業(yè)IT軟件設(shè)計(jì)培訓(xùn)及咨詢。在安博教育等機(jī)構(gòu)任特聘講師,信產(chǎn)部計(jì)算機(jī)技術(shù)培訓(xùn)中心高級(jí)技術(shù)顧問,案例豐富,來源于實(shí)踐,從實(shí)際項(xiàng)目出發(fā),擅長(zhǎng)用直白的語言說明復(fù)雜的原理。
一直在軟件的一線工作,在軟件設(shè)計(jì)及編碼上有豐富的經(jīng)驗(yàn),善于從實(shí)際出發(fā),將各種理論上的規(guī)范和技巧落地,變成實(shí)際項(xiàng)目開發(fā)中,易于接受和使用的原則和方式。在其帶領(lǐng)過的研發(fā)團(tuán)隊(duì)中,都以形成了良好的軟件風(fēng)格和高質(zhì)量的代碼而著稱??道蠋熢趯?duì)系統(tǒng)進(jìn)行劃分、子系統(tǒng)和類設(shè)計(jì)方面有豐富的經(jīng)驗(yàn),善于規(guī)劃系統(tǒng)職責(zé),在系統(tǒng)分析、架構(gòu)設(shè)計(jì)、模塊設(shè)計(jì),模塊職責(zé)分配等方面進(jìn)行合理的劃分及平衡有著深厚的功底和豐富的實(shí)踐經(jīng)驗(yàn)。
項(xiàng)目經(jīng)歷
具有15年從事IT行業(yè)的軟件開發(fā)、系統(tǒng)架構(gòu)設(shè)計(jì)與分析經(jīng)驗(yàn),熟悉中國(guó)企業(yè)的需求,經(jīng)歷過多種文化氛圍與組織形態(tài),對(duì)大型項(xiàng)目、系統(tǒng)工程管理有著深入的實(shí)踐與體會(huì)。且一直工作在大型軟件開發(fā)、系統(tǒng)架構(gòu)設(shè)計(jì)實(shí)際項(xiàng)目的第一線,主持過政府、金稅工程、中國(guó)軍隊(duì)(總參、總后、二炮)等機(jī)構(gòu)的復(fù)雜信息化項(xiàng)目設(shè)計(jì),在實(shí)際工作中積累了豐富的項(xiàng)目實(shí)際經(jīng)驗(yàn)和系統(tǒng)架構(gòu)設(shè)計(jì)分析經(jīng)驗(yàn)。主持過的項(xiàng)目包括奧運(yùn)首都機(jī)場(chǎng)奧運(yùn)福娃機(jī)器人項(xiàng)目;優(yōu)課數(shù)字化教學(xué)應(yīng)用系統(tǒng);美國(guó)外包項(xiàng)目、國(guó)稅總局金稅工程信息化項(xiàng)目;方正奧思多媒體創(chuàng)作工具;網(wǎng)絡(luò)雷達(dá)數(shù)據(jù)采集分析系統(tǒng);分布式電子圖書管理系統(tǒng)等。
近期授課經(jīng)歷

先后為IBM、洛基亞(8次)、艾默生、梅特勒.托利多、阿里軟件、京東、中國(guó)聯(lián)通、中國(guó)電信、用友軟件、中石油天然氣管道公司、中國(guó)移動(dòng)、恒生電子、西南電信、三五互聯(lián)、中金在線、浪潮集團(tuán)、海關(guān)總署、中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心、中國(guó)航天研究院、上海盛大網(wǎng)絡(luò)、上海證券研究所、上海攜程計(jì)算機(jī)、雅馬哈信息系統(tǒng)有限公司、廈門航空、通化鋼鐵集團(tuán)、總參、21世紀(jì)、南京大漢網(wǎng)絡(luò)、等近百家企事業(yè)單位。

北京航空航天大學(xué),碩士。 畢業(yè)后即進(jìn)入北大方正進(jìn)行軟件開發(fā),先后在北大方正技術(shù)研究院、方正電子、方正電子政務(wù)科技有限公司、方正國(guó)際、明博教育科技有限公司工作,擔(dān)任高級(jí)程序員、高級(jí)系統(tǒng)分析員、系統(tǒng)架構(gòu)師、開發(fā)部總監(jiān)等職務(wù);擁有10多項(xiàng)國(guó)家發(fā)明專利。5年培訓(xùn)經(jīng)驗(yàn),主要從事企業(yè)IT軟件設(shè)計(jì)培訓(xùn)及咨詢。在安博教育等機(jī)構(gòu)任特聘講師,信產(chǎn)部計(jì)算機(jī)技術(shù)培訓(xùn)中心高級(jí)技術(shù)顧問,案例豐富,來源于實(shí)踐,從實(shí)際項(xiàng)目出發(fā),擅長(zhǎng)用直白的語言說明復(fù)雜的原理。 一直在軟件的一線工作,在軟件設(shè)計(jì)及編碼上有豐富的經(jīng)驗(yàn),善于從實(shí)際出發(fā),將各種理論上的規(guī)范和技巧落地,變成實(shí)際項(xiàng)目開發(fā)中,易于接受和使用的原則和方式。在其帶領(lǐng)過的研發(fā)團(tuán)隊(duì)中,都以形成了良好的軟件風(fēng)格和高質(zhì)量的代碼而著稱??道蠋熢趯?duì)系統(tǒng)進(jìn)行劃分、子系統(tǒng)和類設(shè)計(jì)方面有豐富的經(jīng)驗(yàn),善于規(guī)劃系統(tǒng)職責(zé),在系統(tǒng)分析、架構(gòu)設(shè)計(jì)、模塊設(shè)計(jì),模塊職責(zé)分配等方面進(jìn)行合理的劃分及平衡有著深厚的功底和豐富的實(shí)踐經(jīng)驗(yàn)。 項(xiàng)目經(jīng)歷 具有15年從事IT行業(yè)的軟件開發(fā)、系統(tǒng)架構(gòu)設(shè)計(jì)與分析經(jīng)驗(yàn),熟悉中國(guó)企業(yè)的需求,經(jīng)歷過多種文化氛圍與組織形態(tài),對(duì)大型項(xiàng)目、系統(tǒng)工程管理有著深入的實(shí)踐與體會(huì)。且一直工作在大型軟件開發(fā)、系統(tǒng)架構(gòu)設(shè)計(jì)實(shí)際項(xiàng)目的第一線,主持過政府、金稅工程、中國(guó)軍隊(duì)(總參、總后、二炮)等機(jī)構(gòu)的復(fù)雜信息化項(xiàng)目設(shè)計(jì),在實(shí)際工作中積累了豐富的項(xiàng)目實(shí)際經(jīng)驗(yàn)和系統(tǒng)架構(gòu)設(shè)計(jì)分析經(jīng)驗(yàn)。主持過的項(xiàng)目包括奧運(yùn)首都機(jī)場(chǎng)奧運(yùn)福娃機(jī)器人項(xiàng)目;優(yōu)課數(shù)字化教學(xué)應(yīng)用系統(tǒng);美國(guó)外包項(xiàng)目、國(guó)稅總局金稅工程信息化項(xiàng)目;方正奧思多媒體創(chuàng)作工具;網(wǎng)絡(luò)雷達(dá)數(shù)據(jù)采集分析系統(tǒng);分布式電子圖書管理系統(tǒng)等。 近期授課經(jīng)歷 先后為IBM、洛基亞(8次)、艾默生、梅特勒.托利多、阿里軟件、京東、中國(guó)聯(lián)通、中國(guó)電信、用友軟件、中石油天然氣管道公司、中國(guó)移動(dòng)、恒生電子、西南電信、三五互聯(lián)、中金在線、浪潮集團(tuán)、海關(guān)總署、中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心、中國(guó)航天研究院、上海盛大網(wǎng)絡(luò)、上海證券研究所、上海攜程計(jì)算機(jī)、雅馬哈信息系統(tǒng)有限公司、廈門航空、通化鋼鐵集團(tuán)、總參、21世紀(jì)、南京大漢網(wǎng)絡(luò)、等近百家企事業(yè)單位。

課程費(fèi)用

5800.00 /人

課程時(shí)長(zhǎng)

2

成為教練

課程簡(jiǎn)介

本課程涵蓋 面向?qū)ο笤O(shè)計(jì)原則、GRASP模式、GOF經(jīng)典設(shè)計(jì)模式、其他經(jīng)典的模式、架構(gòu)模式5個(gè)方面,從面向?qū)Ψ匠霭l(fā),對(duì)重要的設(shè)計(jì)模式和軟件設(shè)計(jì)原則進(jìn)行了分析與講解;以多個(gè)真實(shí)的項(xiàng)目為案例,深入講解設(shè)計(jì)模式的運(yùn)用;提供了大量的項(xiàng)目實(shí)例與代碼,展現(xiàn)設(shè)計(jì)模式的結(jié)構(gòu)。

目標(biāo)收益

培訓(xùn)對(duì)象

課程內(nèi)容

面向?qū)ο笤O(shè)計(jì)原則 開閉原則 / 依賴倒置原則 / 單一職責(zé)原則 / 里氏替換原則 /合成/聚合復(fù)用原則 Solid原則程序員必知---如果還不知道,被鄙視
GRASP模式 通用職責(zé)分配軟件模式:
創(chuàng)建者 /信息專家 /低耦合/ 控制器/ 高內(nèi)聚 / 多態(tài) / 純虛構(gòu)/ 間接性 / 保護(hù)變化 面向?qū)ο舐氊?zé)分配原則
GOF經(jīng)典設(shè)計(jì)模式 創(chuàng)建型模式:抽象工廠模式、建造者模式、工廠模式
結(jié)構(gòu)型模式:適配器模式、橋接模式、裝飾模式、組合模式、外觀模式。
行為型模式:模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、狀態(tài)模式、策略模式、職責(zé)鏈模式、訪問者模式。 課程會(huì)涉及所有23種Gof模式,并將重點(diǎn)放在此處列出的17種常見模式的深入講解
其他經(jīng)典的模式 生產(chǎn)者-消費(fèi)者模式 / IOC / 依賴注入DI / Null 模式 / 表格驅(qū)動(dòng)法 / 主動(dòng)對(duì)象 經(jīng)常在軟件設(shè)計(jì)時(shí)使用的模式
架構(gòu)模式 Pipe Filter架構(gòu)模式/Layer架構(gòu)模式/Microkernel Pattern/MVC/ 經(jīng)典的機(jī)構(gòu)級(jí)模式
此外,本課程對(duì)軟件模塊劃分,及如何為模塊劃分職責(zé)進(jìn)行了詳盡的講解及分析,揭示了軟件設(shè)計(jì)原理及設(shè)計(jì)過程;幫助架構(gòu)師掌握架構(gòu)設(shè)計(jì)方法與架構(gòu)設(shè)計(jì)的模式;本課還幫助設(shè)計(jì)人員掌握領(lǐng)域分析與建模的正確方法;幫助設(shè)計(jì)人員進(jìn)行IT數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及實(shí)例等。

課程大綱

第一單元 優(yōu)秀系統(tǒng)與不佳系統(tǒng)的辨析——設(shè)計(jì)模式初探 內(nèi)容一:什么是優(yōu)秀的設(shè)計(jì)的設(shè)計(jì)
1. 什么是好的軟件設(shè)計(jì)和衡量的手段
2. 可擴(kuò)展性(Extensibility)容易添加新的功能. 結(jié)合案例,通過那些手段如何實(shí)現(xiàn)該目標(biāo)
3. 靈活性(Flexibility)代碼修改平穩(wěn)地發(fā)生. 結(jié)合案例,通過那些手段如何實(shí)現(xiàn)該目標(biāo)
4. 可插入性(Pluggability)容易將一個(gè)類抽出去,同時(shí)將另一個(gè)有同樣接口的類加入進(jìn)來. 結(jié)合案例,通過那些手段如何實(shí)現(xiàn)該目標(biāo)
5. 如何寫出簡(jiǎn)練,易于理解,模塊化,層次性,設(shè)計(jì)良好,高效,優(yōu)雅,并且清晰的系統(tǒng)。
6. 劣質(zhì)代碼有什么特征
7. 劣質(zhì)代碼的代價(jià)
8. 設(shè)計(jì)模式在構(gòu)建優(yōu)秀系統(tǒng)及避免不佳設(shè)計(jì)中的用途。
9. 分析真實(shí)項(xiàng)目,如何做的詳細(xì)設(shè)計(jì),給我們哪些啟示,我們可以學(xué)習(xí)到什么
10. 分析我們?cè)陧?xiàng)目之中是那些原因?qū)е铝藳]有實(shí)現(xiàn)這些目標(biāo).

內(nèi)容二:案例
11. 某檔案移交接收系統(tǒng):紛繁復(fù)雜的嵌套判斷
12. 某多媒體制作軟件:上傳-下載模塊
13. 案例涉及,需要詳細(xì)學(xué)習(xí)如下設(shè)計(jì)模式及原則:
14. 簡(jiǎn)單工廠、單例、策略模式
15. 重點(diǎn):如何組織自己的代碼和模塊:指令與查詢分離原則。
16. 對(duì)有多年編程經(jīng)驗(yàn)的人員,函數(shù)級(jí)的編碼是小兒科?
17. 分析模式使用前和后的對(duì)比
第二單元 設(shè)計(jì)模式與面向?qū)ο笤O(shè)計(jì)原則 內(nèi)容一:面向?qū)ο笤O(shè)計(jì)原則與設(shè)計(jì)模式關(guān)系
1. 軟件設(shè)計(jì)目標(biāo),基本原則和模式關(guān)系
2. 開閉原則
3. 依賴倒置原則
4. 單一職責(zé)原則
5. 里氏替換原則
6. 合成/聚合復(fù)用原則
7. 接口隔離原則和Demeter法則
8. 通過案例進(jìn)行分析,模式如何使用

內(nèi)容二:案例分析—OO基本原則與設(shè)計(jì)模式
1. 通過經(jīng)典面向?qū)ο蟀咐?要求學(xué)員分別使用過程式和面向?qū)ο?種思維,進(jìn)行設(shè)計(jì)
2. 進(jìn)行對(duì)比2種思維的不同點(diǎn)和結(jié)果
3. 學(xué)員通過案例指出OO是否真正做到了它所說的價(jià)值
4. 這些小案例涉及項(xiàng)目開發(fā)中的常見的困境、疑惑,本節(jié)探討如何通過設(shè)計(jì)原則解決。
5. 討論設(shè)計(jì)原則與設(shè)計(jì)模式的關(guān)系,已經(jīng)在沒有合適模式可用的情況下如何分析、解決問題。涉及如下模式:
a) Fa?ade
b) 觀察者模式與表驅(qū)動(dòng)法
c) Bridge模式
d) Template Method模式
e) Strategy模式
第三單元 系統(tǒng)/模塊中的接口設(shè)計(jì),及對(duì)外暴露服務(wù)技巧——組織接口型模式 內(nèi)容一:內(nèi)存接口及Web接口的設(shè)計(jì)及討論
1. 接口分離原則
2. 面向?qū)ο蟮囊c(diǎn)
3. 系統(tǒng)交互時(shí),松散耦合的設(shè)計(jì)要點(diǎn)
4. 無狀態(tài)在接口設(shè)計(jì)中的重要性,及設(shè)計(jì)實(shí)踐
5. 接口的粒度
6. 接口調(diào)用次數(shù)與粒度的折中
7. 接口版本的設(shè)計(jì)
8. 新舊接口的兼容性設(shè)計(jì)技巧——只增不改、靈活參數(shù)等

內(nèi)容二:組織接口型模式
1. 適配器模式。Adapter
a) 適配器模式介紹。
b) 容易被忽略的情況:關(guān)于接口的修改。
c) 適配器總結(jié)。
例:文件解析器系統(tǒng)的接口設(shè)計(jì)。
2. 外觀模式。
a) 令人望而生畏的API函數(shù)。
b) 外觀模式的作用。
c) 容易被忽略的外觀。
d) 外觀模式與適配器的辨析。
例:文件解析器系統(tǒng)的外觀設(shè)計(jì)。
3. 中介者模式
a) 中介者模式的使用場(chǎng)景。
b) 中介者模式在架構(gòu)中的重要地位。
c) 中介者模式與控制者。
第四單元 如何在系統(tǒng)及框架中創(chuàng)建并管理對(duì)象/模塊? ——?jiǎng)?chuàng)建型模式
內(nèi)容一:對(duì)象及模塊創(chuàng)建的管理
1. 對(duì)象創(chuàng)建與IOC模式
2. 框架設(shè)計(jì)中的對(duì)象管理——SpringBean分析
3. 在分層架構(gòu)中,對(duì)象創(chuàng)建的要點(diǎn)

內(nèi)容二:創(chuàng)建型模式
1. 單例模式。
a) 單例模式的意義。
b) 多線程中的問題。
例:引入單例模式。
2. 工廠模式
a) 工廠模式的使用場(chǎng)景。
b) 工廠模式與反射。
例:引入工廠模式。
3. 抽象工廠模式
a) 創(chuàng)建不同對(duì)象的多個(gè)系列產(chǎn)品。
b) 工廠模式與抽象工廠模式的區(qū)別。
例:引入抽象工廠模式。
4. 構(gòu)造者模式
a) 構(gòu)造者模式的應(yīng)用場(chǎng)景。
b) 構(gòu)造者模式中的控制者。
5. 原型模式
a) 作為工廠的原型
b) 利用克隆進(jìn)行原型
第五單元 如何設(shè)計(jì)出高可擴(kuò)展性的系統(tǒng)!——擴(kuò)展型模式 內(nèi)容一:如何應(yīng)對(duì)需求的變化 —— 打造高可擴(kuò)展性的系統(tǒng)!
1. 從技術(shù)的角度,如何應(yīng)對(duì)需求的變化?
2. 高可擴(kuò)展性系統(tǒng)的特點(diǎn)及達(dá)成方式的變遷
3. 框架設(shè)計(jì)的常用方法
4. 如何平衡精巧系統(tǒng)的設(shè)計(jì)和開發(fā)成本的投入?
5. 不要生硬地套用模式 —— 橋接模式的靈活使用

內(nèi)容二:擴(kuò)展型模式
6. 功能與邏輯的關(guān)系
a) 功能模塊的設(shè)計(jì)要點(diǎn)。
b) 邏輯模塊的設(shè)計(jì)要點(diǎn)。
c) 系統(tǒng)穩(wěn)定及可擴(kuò)展的秘訣。
7. 模板方法模式
a) 部分的多態(tài)。
b) 模板方法模式的使用場(chǎng)合。
c) 模板方法模式與IOC。
例:文件解析器中的模板方法模式。
8. 策略模式
a) 繼承與組合的辨析。
b) 多態(tài)的經(jīng)典使用。
c) 無處不在的策略模式。
例:運(yùn)輸系統(tǒng);在多窗口系統(tǒng)中引入策略模式。
9. 橋接模式
a) 從“類爆炸”說起。
b) 復(fù)雜多對(duì)多的處理。
c) 僅針對(duì)接口編程是不夠的。
d) 橋接模式的要點(diǎn):抽象類行為的具體實(shí)現(xiàn)中有重復(fù)的方法。
e) 從橋接模式到面向?qū)ο蟮恼`區(qū)。
例:在文件解析器中引入橋接模式。
10. 狀態(tài)模式
a) 狀態(tài)模式的本質(zhì):類狀態(tài)機(jī)。
b) 狀態(tài)模式的前提條件:經(jīng)常發(fā)生改變的是狀態(tài)(業(yè)務(wù)流程),而非對(duì)應(yīng)的處理。
c) 狀態(tài)模式使用。
d) 狀態(tài)模式與表驅(qū)動(dòng)法。
e) 策略、橋接、狀態(tài)、模板方法模式的辨析。
11. 裝飾模式
a) 裝飾模式的使用場(chǎng)合。
b) 裝飾模式的要點(diǎn)。
c) Java中的裝飾模式。
例:裝飾模式在打印中的使用。
12. 代理模式
a) 代理模式的使用場(chǎng)合。
b) 代理模式的要點(diǎn)。
c) 代理模式與AOP
13. 訪問者模式
a) 訪問者模式的使用場(chǎng)合。
b) 雙重分發(fā)機(jī)制。
c) 與橋接模式的比較。
例:在演示控制系統(tǒng)中引入橋接模式。
14. 責(zé)任鏈模式
a) 責(zé)任鏈模式的使用場(chǎng)合。
b) 責(zé)任鏈模式的要點(diǎn)。
c) 消息路由與責(zé)任鏈模式。
15. 組合模式
a) 組合模式的使用場(chǎng)合。
b) 組合模式的使用要點(diǎn)。
c) 例:組合模式在表單統(tǒng)計(jì)中的使用。
第六單元 系統(tǒng)流程控制的設(shè)計(jì)——操作型模式 內(nèi)容一:系統(tǒng)中流程控制的設(shè)計(jì)
1. 類名暗含的意味
2. 臨時(shí)創(chuàng)建對(duì)象的用途
3. 工作流與命令模式
4. 消費(fèi)者-生產(chǎn)者模式
5. 消息廣播的多種實(shí)現(xiàn)形態(tài)

內(nèi)容二:操作型模式
6. 命令模式
1) 命令模式的特點(diǎn)、優(yōu)點(diǎn)及缺點(diǎn)。
2) 命令模式的典型使用場(chǎng)合。
例:在客戶端與服務(wù)器端傳遞命令。
例:在元搜索系統(tǒng)中使用命令模式。
7. 觀察者模式
1) 觀察者模式的使用場(chǎng)景。
2) 觀察者模式與MVC。
3) 觀察者模式使用中變體。
例:用觀察者模式解決多窗口系統(tǒng)的聯(lián)動(dòng)問題。
8. 享元模式
1) 享元模式的使用場(chǎng)景。
2) 內(nèi)存管理:存根(stub)與享元模式。
9. 備忘錄模式
1) 備忘錄的使用場(chǎng)景。
10. 迭代器模式
1) Java、stl、c#中的迭代器實(shí)例。
例:構(gòu)造統(tǒng)一的樹狀結(jié)構(gòu)迭代。
11. 解析器模式:
1) 解析器模式的使用場(chǎng)合。
第七單元 如何才能正確使用模式 內(nèi)容一:設(shè)計(jì)模式的精髓——封裝變化
1. 設(shè)計(jì)模式精髓—如何應(yīng)對(duì)變化
2. 封裝變化的原則——避免“散彈槍式的外科手術(shù)”
3. 如何抽取出系統(tǒng)中的變化點(diǎn)及不變點(diǎn)
4. 不同因素的隔離——保護(hù)變量原則
5. 設(shè)計(jì)模式中封裝變化的思想和具體手段探討

內(nèi)容二:模式案例–某訂單系統(tǒng)
1. 介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì)
2. 學(xué)習(xí)設(shè)計(jì)模式(Strategy / Abstrct Factory/ Template Method)

內(nèi)容三:模式案例–某數(shù)據(jù)展示系統(tǒng)
1. 項(xiàng)目子系統(tǒng)背景和需求
2. 系統(tǒng)的設(shè)計(jì)思考過程
3. 展示如何用模式,進(jìn)行設(shè)計(jì)
4. 學(xué)習(xí)設(shè)計(jì)模式(Strategy /Command/Template Method/ NULL Objecct /Adapter/表驅(qū)動(dòng)法/Singleton )

內(nèi)容四:模式案例–某數(shù)據(jù)分析系統(tǒng)
1. 項(xiàng)目子系統(tǒng)背景和需求
2. 系統(tǒng)的設(shè)計(jì)思考過程
3. 展示如何用模式,進(jìn)行設(shè)計(jì)
4. 學(xué)習(xí)設(shè)計(jì)模式(Observer / Visitor/ Composite /Command/ Strategy /Adapter/Singleton )
第八單元 重構(gòu)到模式 內(nèi)容一:重構(gòu)到模式----錯(cuò)了再改,事不過三
1. 設(shè)計(jì)壞味道概述
2. 重構(gòu)思想
3. 重構(gòu)到設(shè)計(jì)模式
4. 常見設(shè)計(jì)模式的重構(gòu)演化的過程

內(nèi)容二:案例- 網(wǎng)絡(luò)數(shù)據(jù)分析系統(tǒng)的設(shè)計(jì)
1. 介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì)
2. 通過重構(gòu)逐步實(shí)現(xiàn)設(shè)計(jì)模式
3. Framework 設(shè)計(jì)思想—好萊塢原則
4. 學(xué)習(xí)設(shè)計(jì)模式
5. Factory模式
6. Strategy模式
7. Decorator模式
8. Observer模式
9. 架構(gòu)模式-分層、管道過濾器模式
10. 架構(gòu)模式的重構(gòu)及演變,每步的依據(jù)及效果對(duì)比
11. 從結(jié)構(gòu)上考慮、從效率上考慮
第九單元 用模式去思考—對(duì)設(shè)計(jì)模式本質(zhì)的思索及探討 內(nèi)容一:模式案例- 數(shù)據(jù)文件處理系統(tǒng)
1. 項(xiàng)目背景介紹和前期規(guī)劃
2. 從最初的需求進(jìn)行分析,到系統(tǒng)的設(shè)計(jì),最后到編碼實(shí)現(xiàn)該案例,全程進(jìn)行面向?qū)ο蟮姆治?建模,設(shè)計(jì)和最終的開發(fā)實(shí)現(xiàn).
3. 學(xué)習(xí)IOC思想在框架設(shè)計(jì)中的重要作用
4. 在案例中自然使用模式,而非生搬硬套! (Fa?ade, Strategy、Template Method 、Mediator, Simple Factory Command,模式)
5. 案例采用逐步推演的方法,針對(duì)需求的不斷變化進(jìn)行設(shè)計(jì)的演變。設(shè)計(jì)靈活的系統(tǒng)框架
6. 通過案例學(xué)習(xí)怎樣才能合適應(yīng)用模式

內(nèi)容二:設(shè)計(jì)模式的本質(zhì)探討
1. 指出什么是優(yōu)秀設(shè)計(jì)和丑陋設(shè)計(jì)
2. 總結(jié)自己的模式-神似而非型似
3. 探討相似模式的本質(zhì)
4. “間接類”模式的推演及演化
5. “流程類”模式的推演及演化
6. 避免模式的誤用,討論模式的陷阱:在看似典型的場(chǎng)景,但不宜使用模式的場(chǎng)合。

內(nèi)容三:案例- 元搜索系統(tǒng)分析及設(shè)計(jì)
1. 簡(jiǎn)單背景介紹
2. 如何面對(duì)紛繁的變化因素的組合
3. 一定要使用模式嗎——如果能很好地能抽象、隔離不同因素,也許它就是模式。
4. 討論Command模式的本質(zhì)。

內(nèi)容四:案例- 電子文件生成
1. 簡(jiǎn)單背景介紹
2. 使用模式的第一反應(yīng),及陷入陷阱的思索
3. 具體場(chǎng)景使用模式的本質(zhì)討論
4. 多態(tài)的本質(zhì)
5. 討論并介紹表驅(qū)動(dòng)法
6. Template Method、DIP原則Strategy模式的的靈活使用——獲得優(yōu)雅的設(shè)計(jì)
第十單元 大型系統(tǒng)中的模式運(yùn)用 內(nèi)容一:大型系統(tǒng)的及發(fā)展及核心技術(shù)
? 應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離
? 使用緩存改善避免數(shù)據(jù)庫瓶頸
? 應(yīng)用服務(wù)器集群和負(fù)載均衡避免運(yùn)用服務(wù)器瓶頸
? 數(shù)據(jù)庫讀寫分離
? 用CDN及分布式文件系統(tǒng)加速系統(tǒng)響應(yīng)
? 分布式數(shù)據(jù)庫系統(tǒng)及NoSQL運(yùn)用
? 進(jìn)行橫向的業(yè)務(wù)拆分
? 分布式服務(wù),打造自己的軟件生態(tài)環(huán)境

內(nèi)容二:系統(tǒng)的負(fù)載均衡模式
? HTTP 重定向負(fù)載均衡
? DNS 域名解析負(fù)載均衡
? 反向代理負(fù)載均衡
? IP(NAT) 負(fù)載均衡
? 數(shù)據(jù)鏈路層負(fù)載均衡
? 負(fù)載均衡算法-hash一致性算法

內(nèi)容三:系統(tǒng)的緩存模式
? 客戶端緩存策略(瀏覽器緩存、本地Navtive代碼緩存)
? 代理服務(wù)器緩存
? CDN緩存
? 反向代理服務(wù)器緩存
? Memcached 分布式緩存集群的訪問模型
? Memcached 分布式緩存集群的伸縮性方案
? 分布式緩存的一致性Hash 算法
典型案例分析:緩存策略如何應(yīng)用在自己的實(shí)際項(xiàng)目中

內(nèi)容四:分布式數(shù)據(jù)存儲(chǔ)策略
? 分布式文件系統(tǒng)
? 數(shù)據(jù)存儲(chǔ)服務(wù)器集群
? NoSQL 數(shù)據(jù)庫
第一單元 優(yōu)秀系統(tǒng)與不佳系統(tǒng)的辨析——設(shè)計(jì)模式初探
內(nèi)容一:什么是優(yōu)秀的設(shè)計(jì)的設(shè)計(jì)
1. 什么是好的軟件設(shè)計(jì)和衡量的手段
2. 可擴(kuò)展性(Extensibility)容易添加新的功能. 結(jié)合案例,通過那些手段如何實(shí)現(xiàn)該目標(biāo)
3. 靈活性(Flexibility)代碼修改平穩(wěn)地發(fā)生. 結(jié)合案例,通過那些手段如何實(shí)現(xiàn)該目標(biāo)
4. 可插入性(Pluggability)容易將一個(gè)類抽出去,同時(shí)將另一個(gè)有同樣接口的類加入進(jìn)來. 結(jié)合案例,通過那些手段如何實(shí)現(xiàn)該目標(biāo)
5. 如何寫出簡(jiǎn)練,易于理解,模塊化,層次性,設(shè)計(jì)良好,高效,優(yōu)雅,并且清晰的系統(tǒng)。
6. 劣質(zhì)代碼有什么特征
7. 劣質(zhì)代碼的代價(jià)
8. 設(shè)計(jì)模式在構(gòu)建優(yōu)秀系統(tǒng)及避免不佳設(shè)計(jì)中的用途。
9. 分析真實(shí)項(xiàng)目,如何做的詳細(xì)設(shè)計(jì),給我們哪些啟示,我們可以學(xué)習(xí)到什么
10. 分析我們?cè)陧?xiàng)目之中是那些原因?qū)е铝藳]有實(shí)現(xiàn)這些目標(biāo).

內(nèi)容二:案例
11. 某檔案移交接收系統(tǒng):紛繁復(fù)雜的嵌套判斷
12. 某多媒體制作軟件:上傳-下載模塊
13. 案例涉及,需要詳細(xì)學(xué)習(xí)如下設(shè)計(jì)模式及原則:
14. 簡(jiǎn)單工廠、單例、策略模式
15. 重點(diǎn):如何組織自己的代碼和模塊:指令與查詢分離原則。
16. 對(duì)有多年編程經(jīng)驗(yàn)的人員,函數(shù)級(jí)的編碼是小兒科?
17. 分析模式使用前和后的對(duì)比
第二單元 設(shè)計(jì)模式與面向?qū)ο笤O(shè)計(jì)原則
內(nèi)容一:面向?qū)ο笤O(shè)計(jì)原則與設(shè)計(jì)模式關(guān)系
1. 軟件設(shè)計(jì)目標(biāo),基本原則和模式關(guān)系
2. 開閉原則
3. 依賴倒置原則
4. 單一職責(zé)原則
5. 里氏替換原則
6. 合成/聚合復(fù)用原則
7. 接口隔離原則和Demeter法則
8. 通過案例進(jìn)行分析,模式如何使用

內(nèi)容二:案例分析—OO基本原則與設(shè)計(jì)模式
1. 通過經(jīng)典面向?qū)ο蟀咐?要求學(xué)員分別使用過程式和面向?qū)ο?種思維,進(jìn)行設(shè)計(jì)
2. 進(jìn)行對(duì)比2種思維的不同點(diǎn)和結(jié)果
3. 學(xué)員通過案例指出OO是否真正做到了它所說的價(jià)值
4. 這些小案例涉及項(xiàng)目開發(fā)中的常見的困境、疑惑,本節(jié)探討如何通過設(shè)計(jì)原則解決。
5. 討論設(shè)計(jì)原則與設(shè)計(jì)模式的關(guān)系,已經(jīng)在沒有合適模式可用的情況下如何分析、解決問題。涉及如下模式:
a) Fa?ade
b) 觀察者模式與表驅(qū)動(dòng)法
c) Bridge模式
d) Template Method模式
e) Strategy模式
第三單元 系統(tǒng)/模塊中的接口設(shè)計(jì),及對(duì)外暴露服務(wù)技巧——組織接口型模式
內(nèi)容一:內(nèi)存接口及Web接口的設(shè)計(jì)及討論
1. 接口分離原則
2. 面向?qū)ο蟮囊c(diǎn)
3. 系統(tǒng)交互時(shí),松散耦合的設(shè)計(jì)要點(diǎn)
4. 無狀態(tài)在接口設(shè)計(jì)中的重要性,及設(shè)計(jì)實(shí)踐
5. 接口的粒度
6. 接口調(diào)用次數(shù)與粒度的折中
7. 接口版本的設(shè)計(jì)
8. 新舊接口的兼容性設(shè)計(jì)技巧——只增不改、靈活參數(shù)等

內(nèi)容二:組織接口型模式
1. 適配器模式。Adapter
a) 適配器模式介紹。
b) 容易被忽略的情況:關(guān)于接口的修改。
c) 適配器總結(jié)。
例:文件解析器系統(tǒng)的接口設(shè)計(jì)。
2. 外觀模式。
a) 令人望而生畏的API函數(shù)。
b) 外觀模式的作用。
c) 容易被忽略的外觀。
d) 外觀模式與適配器的辨析。
例:文件解析器系統(tǒng)的外觀設(shè)計(jì)。
3. 中介者模式
a) 中介者模式的使用場(chǎng)景。
b) 中介者模式在架構(gòu)中的重要地位。
c) 中介者模式與控制者。
第四單元 如何在系統(tǒng)及框架中創(chuàng)建并管理對(duì)象/模塊? ——?jiǎng)?chuàng)建型模式

內(nèi)容一:對(duì)象及模塊創(chuàng)建的管理
1. 對(duì)象創(chuàng)建與IOC模式
2. 框架設(shè)計(jì)中的對(duì)象管理——SpringBean分析
3. 在分層架構(gòu)中,對(duì)象創(chuàng)建的要點(diǎn)

內(nèi)容二:創(chuàng)建型模式
1. 單例模式。
a) 單例模式的意義。
b) 多線程中的問題。
例:引入單例模式。
2. 工廠模式
a) 工廠模式的使用場(chǎng)景。
b) 工廠模式與反射。
例:引入工廠模式。
3. 抽象工廠模式
a) 創(chuàng)建不同對(duì)象的多個(gè)系列產(chǎn)品。
b) 工廠模式與抽象工廠模式的區(qū)別。
例:引入抽象工廠模式。
4. 構(gòu)造者模式
a) 構(gòu)造者模式的應(yīng)用場(chǎng)景。
b) 構(gòu)造者模式中的控制者。
5. 原型模式
a) 作為工廠的原型
b) 利用克隆進(jìn)行原型
第五單元 如何設(shè)計(jì)出高可擴(kuò)展性的系統(tǒng)!——擴(kuò)展型模式
內(nèi)容一:如何應(yīng)對(duì)需求的變化 —— 打造高可擴(kuò)展性的系統(tǒng)!
1. 從技術(shù)的角度,如何應(yīng)對(duì)需求的變化?
2. 高可擴(kuò)展性系統(tǒng)的特點(diǎn)及達(dá)成方式的變遷
3. 框架設(shè)計(jì)的常用方法
4. 如何平衡精巧系統(tǒng)的設(shè)計(jì)和開發(fā)成本的投入?
5. 不要生硬地套用模式 —— 橋接模式的靈活使用

內(nèi)容二:擴(kuò)展型模式
6. 功能與邏輯的關(guān)系
a) 功能模塊的設(shè)計(jì)要點(diǎn)。
b) 邏輯模塊的設(shè)計(jì)要點(diǎn)。
c) 系統(tǒng)穩(wěn)定及可擴(kuò)展的秘訣。
7. 模板方法模式
a) 部分的多態(tài)。
b) 模板方法模式的使用場(chǎng)合。
c) 模板方法模式與IOC。
例:文件解析器中的模板方法模式。
8. 策略模式
a) 繼承與組合的辨析。
b) 多態(tài)的經(jīng)典使用。
c) 無處不在的策略模式。
例:運(yùn)輸系統(tǒng);在多窗口系統(tǒng)中引入策略模式。
9. 橋接模式
a) 從“類爆炸”說起。
b) 復(fù)雜多對(duì)多的處理。
c) 僅針對(duì)接口編程是不夠的。
d) 橋接模式的要點(diǎn):抽象類行為的具體實(shí)現(xiàn)中有重復(fù)的方法。
e) 從橋接模式到面向?qū)ο蟮恼`區(qū)。
例:在文件解析器中引入橋接模式。
10. 狀態(tài)模式
a) 狀態(tài)模式的本質(zhì):類狀態(tài)機(jī)。
b) 狀態(tài)模式的前提條件:經(jīng)常發(fā)生改變的是狀態(tài)(業(yè)務(wù)流程),而非對(duì)應(yīng)的處理。
c) 狀態(tài)模式使用。
d) 狀態(tài)模式與表驅(qū)動(dòng)法。
e) 策略、橋接、狀態(tài)、模板方法模式的辨析。
11. 裝飾模式
a) 裝飾模式的使用場(chǎng)合。
b) 裝飾模式的要點(diǎn)。
c) Java中的裝飾模式。
例:裝飾模式在打印中的使用。
12. 代理模式
a) 代理模式的使用場(chǎng)合。
b) 代理模式的要點(diǎn)。
c) 代理模式與AOP
13. 訪問者模式
a) 訪問者模式的使用場(chǎng)合。
b) 雙重分發(fā)機(jī)制。
c) 與橋接模式的比較。
例:在演示控制系統(tǒng)中引入橋接模式。
14. 責(zé)任鏈模式
a) 責(zé)任鏈模式的使用場(chǎng)合。
b) 責(zé)任鏈模式的要點(diǎn)。
c) 消息路由與責(zé)任鏈模式。
15. 組合模式
a) 組合模式的使用場(chǎng)合。
b) 組合模式的使用要點(diǎn)。
c) 例:組合模式在表單統(tǒng)計(jì)中的使用。
第六單元 系統(tǒng)流程控制的設(shè)計(jì)——操作型模式
內(nèi)容一:系統(tǒng)中流程控制的設(shè)計(jì)
1. 類名暗含的意味
2. 臨時(shí)創(chuàng)建對(duì)象的用途
3. 工作流與命令模式
4. 消費(fèi)者-生產(chǎn)者模式
5. 消息廣播的多種實(shí)現(xiàn)形態(tài)

內(nèi)容二:操作型模式
6. 命令模式
1) 命令模式的特點(diǎn)、優(yōu)點(diǎn)及缺點(diǎn)。
2) 命令模式的典型使用場(chǎng)合。
例:在客戶端與服務(wù)器端傳遞命令。
例:在元搜索系統(tǒng)中使用命令模式。
7. 觀察者模式
1) 觀察者模式的使用場(chǎng)景。
2) 觀察者模式與MVC。
3) 觀察者模式使用中變體。
例:用觀察者模式解決多窗口系統(tǒng)的聯(lián)動(dòng)問題。
8. 享元模式
1) 享元模式的使用場(chǎng)景。
2) 內(nèi)存管理:存根(stub)與享元模式。
9. 備忘錄模式
1) 備忘錄的使用場(chǎng)景。
10. 迭代器模式
1) Java、stl、c#中的迭代器實(shí)例。
例:構(gòu)造統(tǒng)一的樹狀結(jié)構(gòu)迭代。
11. 解析器模式:
1) 解析器模式的使用場(chǎng)合。
第七單元 如何才能正確使用模式
內(nèi)容一:設(shè)計(jì)模式的精髓——封裝變化
1. 設(shè)計(jì)模式精髓—如何應(yīng)對(duì)變化
2. 封裝變化的原則——避免“散彈槍式的外科手術(shù)”
3. 如何抽取出系統(tǒng)中的變化點(diǎn)及不變點(diǎn)
4. 不同因素的隔離——保護(hù)變量原則
5. 設(shè)計(jì)模式中封裝變化的思想和具體手段探討

內(nèi)容二:模式案例–某訂單系統(tǒng)
1. 介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì)
2. 學(xué)習(xí)設(shè)計(jì)模式(Strategy / Abstrct Factory/ Template Method)

內(nèi)容三:模式案例–某數(shù)據(jù)展示系統(tǒng)
1. 項(xiàng)目子系統(tǒng)背景和需求
2. 系統(tǒng)的設(shè)計(jì)思考過程
3. 展示如何用模式,進(jìn)行設(shè)計(jì)
4. 學(xué)習(xí)設(shè)計(jì)模式(Strategy /Command/Template Method/ NULL Objecct /Adapter/表驅(qū)動(dòng)法/Singleton )

內(nèi)容四:模式案例–某數(shù)據(jù)分析系統(tǒng)
1. 項(xiàng)目子系統(tǒng)背景和需求
2. 系統(tǒng)的設(shè)計(jì)思考過程
3. 展示如何用模式,進(jìn)行設(shè)計(jì)
4. 學(xué)習(xí)設(shè)計(jì)模式(Observer / Visitor/ Composite /Command/ Strategy /Adapter/Singleton )
第八單元 重構(gòu)到模式
內(nèi)容一:重構(gòu)到模式----錯(cuò)了再改,事不過三
1. 設(shè)計(jì)壞味道概述
2. 重構(gòu)思想
3. 重構(gòu)到設(shè)計(jì)模式
4. 常見設(shè)計(jì)模式的重構(gòu)演化的過程

內(nèi)容二:案例- 網(wǎng)絡(luò)數(shù)據(jù)分析系統(tǒng)的設(shè)計(jì)
1. 介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì)
2. 通過重構(gòu)逐步實(shí)現(xiàn)設(shè)計(jì)模式
3. Framework 設(shè)計(jì)思想—好萊塢原則
4. 學(xué)習(xí)設(shè)計(jì)模式
5. Factory模式
6. Strategy模式
7. Decorator模式
8. Observer模式
9. 架構(gòu)模式-分層、管道過濾器模式
10. 架構(gòu)模式的重構(gòu)及演變,每步的依據(jù)及效果對(duì)比
11. 從結(jié)構(gòu)上考慮、從效率上考慮
第九單元 用模式去思考—對(duì)設(shè)計(jì)模式本質(zhì)的思索及探討
內(nèi)容一:模式案例- 數(shù)據(jù)文件處理系統(tǒng)
1. 項(xiàng)目背景介紹和前期規(guī)劃
2. 從最初的需求進(jìn)行分析,到系統(tǒng)的設(shè)計(jì),最后到編碼實(shí)現(xiàn)該案例,全程進(jìn)行面向?qū)ο蟮姆治?建模,設(shè)計(jì)和最終的開發(fā)實(shí)現(xiàn).
3. 學(xué)習(xí)IOC思想在框架設(shè)計(jì)中的重要作用
4. 在案例中自然使用模式,而非生搬硬套! (Fa?ade, Strategy、Template Method 、Mediator, Simple Factory Command,模式)
5. 案例采用逐步推演的方法,針對(duì)需求的不斷變化進(jìn)行設(shè)計(jì)的演變。設(shè)計(jì)靈活的系統(tǒng)框架
6. 通過案例學(xué)習(xí)怎樣才能合適應(yīng)用模式

內(nèi)容二:設(shè)計(jì)模式的本質(zhì)探討
1. 指出什么是優(yōu)秀設(shè)計(jì)和丑陋設(shè)計(jì)
2. 總結(jié)自己的模式-神似而非型似
3. 探討相似模式的本質(zhì)
4. “間接類”模式的推演及演化
5. “流程類”模式的推演及演化
6. 避免模式的誤用,討論模式的陷阱:在看似典型的場(chǎng)景,但不宜使用模式的場(chǎng)合。

內(nèi)容三:案例- 元搜索系統(tǒng)分析及設(shè)計(jì)
1. 簡(jiǎn)單背景介紹
2. 如何面對(duì)紛繁的變化因素的組合
3. 一定要使用模式嗎——如果能很好地能抽象、隔離不同因素,也許它就是模式。
4. 討論Command模式的本質(zhì)。

內(nèi)容四:案例- 電子文件生成
1. 簡(jiǎn)單背景介紹
2. 使用模式的第一反應(yīng),及陷入陷阱的思索
3. 具體場(chǎng)景使用模式的本質(zhì)討論
4. 多態(tài)的本質(zhì)
5. 討論并介紹表驅(qū)動(dòng)法
6. Template Method、DIP原則Strategy模式的的靈活使用——獲得優(yōu)雅的設(shè)計(jì)
第十單元 大型系統(tǒng)中的模式運(yùn)用
內(nèi)容一:大型系統(tǒng)的及發(fā)展及核心技術(shù)
? 應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離
? 使用緩存改善避免數(shù)據(jù)庫瓶頸
? 應(yīng)用服務(wù)器集群和負(fù)載均衡避免運(yùn)用服務(wù)器瓶頸
? 數(shù)據(jù)庫讀寫分離
? 用CDN及分布式文件系統(tǒng)加速系統(tǒng)響應(yīng)
? 分布式數(shù)據(jù)庫系統(tǒng)及NoSQL運(yùn)用
? 進(jìn)行橫向的業(yè)務(wù)拆分
? 分布式服務(wù),打造自己的軟件生態(tài)環(huán)境

內(nèi)容二:系統(tǒng)的負(fù)載均衡模式
? HTTP 重定向負(fù)載均衡
? DNS 域名解析負(fù)載均衡
? 反向代理負(fù)載均衡
? IP(NAT) 負(fù)載均衡
? 數(shù)據(jù)鏈路層負(fù)載均衡
? 負(fù)載均衡算法-hash一致性算法

內(nèi)容三:系統(tǒng)的緩存模式
? 客戶端緩存策略(瀏覽器緩存、本地Navtive代碼緩存)
? 代理服務(wù)器緩存
? CDN緩存
? 反向代理服務(wù)器緩存
? Memcached 分布式緩存集群的訪問模型
? Memcached 分布式緩存集群的伸縮性方案
? 分布式緩存的一致性Hash 算法
典型案例分析:緩存策略如何應(yīng)用在自己的實(shí)際項(xiàng)目中

內(nèi)容四:分布式數(shù)據(jù)存儲(chǔ)策略
? 分布式文件系統(tǒng)
? 數(shù)據(jù)存儲(chǔ)服務(wù)器集群
? NoSQL 數(shù)據(jù)庫

課程費(fèi)用

5800.00 /人

課程時(shí)長(zhǎng)

2

預(yù)約體驗(yàn)票 我要分享

近期公開課推薦

近期公開課推薦

活動(dòng)詳情

提交需求