培訓(xùn)搜索引擎
職場技能
軟件設(shè)計(jì)全程演練與最佳實(shí)踐(楊老師)
參加對象:1、中高級程序員、系統(tǒng)分析員、架構(gòu)設(shè)計(jì)師、產(chǎn)品市場技術(shù)人員; 2、具備IT部門工作經(jīng)驗(yàn),將負(fù)責(zé)信息化系統(tǒng)規(guī)劃等相關(guān)任務(wù)的技術(shù)人員; 3、希望加強(qiáng)軟件架構(gòu)理論和實(shí)踐能力的軟件開發(fā)人員; 4、負(fù)責(zé)軟件產(chǎn)品規(guī)劃與定義的相關(guān)人員; 5、需要了解軟件設(shè)計(jì)全過程的項(xiàng)目經(jīng)理。公開課編號
GKK5531
主講老師
楊老師
參加費(fèi)用
5500元
課時(shí)安排
3天
近期開課時(shí)間
2018-07-17
舉辦地址
加載中...
其他開課時(shí)間
- 開課地址: 開課時(shí)間:
電話:010-68630945/18610481046 聯(lián)系人:尹老師
公開課大綱
學(xué)員基礎(chǔ)
1、三年以上開發(fā)經(jīng)驗(yàn),經(jīng)歷過頻繁需求變更或者系統(tǒng)重復(fù)開發(fā)的折磨;
2、熟悉Java/C#/C++任意一種面向?qū)ο笳Z言或者具備面向?qū)ο缶幊袒靖拍睢?br />
師資
由業(yè)界知名軟件架構(gòu)師親自授課:
楊老師 中科院計(jì)算所培訓(xùn)中心特聘講師,總后信息化顧問,國家SOA技術(shù)專家委常務(wù)委員、ISO國際標(biāo)準(zhǔn)組織SOA組中國區(qū)代表(首批4人小組成員)、國家人事部考試中心計(jì)算機(jī)命題評審委員會(huì)委員、軍隊(duì)信息化標(biāo)準(zhǔn)委員會(huì)副秘書長。
培訓(xùn)內(nèi)容
課程目標(biāo)
1、了解軟件設(shè)計(jì)基本原理、主要原則和國內(nèi)外主流方法論;
2、掌握前沿技術(shù)的同時(shí),獲得解決實(shí)際問題的規(guī)范和能力;
3、幫助軟件企業(yè)完善軟件架構(gòu)設(shè)計(jì)、評審流程,改善軟件開發(fā)質(zhì)量和效率。
1、三年以上開發(fā)經(jīng)驗(yàn),經(jīng)歷過頻繁需求變更或者系統(tǒng)重復(fù)開發(fā)的折磨;
2、熟悉Java/C#/C++任意一種面向?qū)ο笳Z言或者具備面向?qū)ο缶幊袒靖拍睢?br />
師資
由業(yè)界知名軟件架構(gòu)師親自授課:
楊老師 中科院計(jì)算所培訓(xùn)中心特聘講師,總后信息化顧問,國家SOA技術(shù)專家委常務(wù)委員、ISO國際標(biāo)準(zhǔn)組織SOA組中國區(qū)代表(首批4人小組成員)、國家人事部考試中心計(jì)算機(jī)命題評審委員會(huì)委員、軍隊(duì)信息化標(biāo)準(zhǔn)委員會(huì)副秘書長。
培訓(xùn)內(nèi)容
時(shí)間 | 內(nèi)容 | 案例實(shí)踐與練習(xí) |
Day1 (9:00-12:00) 第一部分:架構(gòu)設(shè)計(jì)思想與原理 |
一、架構(gòu)設(shè)計(jì)的內(nèi)涵 1、 概念和定義; 2、 架構(gòu)原理; 3、 架構(gòu)的三個(gè)層次; 4、 企業(yè)架構(gòu)設(shè)計(jì)的產(chǎn)物; 5、 大型系統(tǒng)架構(gòu)設(shè)計(jì)的產(chǎn)物; 6、中小型系統(tǒng)設(shè)計(jì)的產(chǎn)物。 二、架構(gòu)設(shè)計(jì)的外延 1、架構(gòu)設(shè)計(jì)方法體系; 2、架構(gòu)與軟件工程; 3、架構(gòu)與模式。 三、架構(gòu)師的成長 1、 架構(gòu)師關(guān)鍵素質(zhì); 2、 架構(gòu)師職業(yè)發(fā)展建議; 3、 設(shè)計(jì)師與設(shè)計(jì)技能; 4、設(shè)計(jì)師能力模型。 |
案例分析,某研發(fā)中心引入敏捷的實(shí)戰(zhàn)分析,什么才是真正的敏捷 1、某研發(fā)團(tuán)隊(duì)5年前引入敏捷的失敗教訓(xùn)-能力比方法重要,但改變方法比改變能力簡單多了; 2、優(yōu)秀的設(shè)計(jì)來自優(yōu)秀的設(shè)計(jì)師,因此應(yīng)該首先是尊重個(gè)體的主動(dòng)和創(chuàng)造性,提高個(gè)體工作技能,而不是應(yīng)用了一種流程,消滅了個(gè)體的活力。首先關(guān)注人,才能真敏捷。 |
Day1 (13:00-16:00) 第二部分:中小型項(xiàng)目案例分析與實(shí)踐 |
一、良好需求是優(yōu)秀設(shè)計(jì)的開端 1、不管你在何處工作,構(gòu)建些什么,用何種語言,在軟件開發(fā)上,一直最痛苦的事情是什么? 或者什么是你開發(fā)之中最討厭的問題是什么?---需求變更; 2、殺死一個(gè)程序員不需要刀,只要需求變3次就好了; 3、軟件不斷變更法則:真實(shí)世界中使用的程序必須進(jìn)行變更,否則它在環(huán)境中的作用就會(huì)越來越?。?br /> 4、需求改變的態(tài)度-拒絕變化無用,積極心態(tài)面對變化。 二、針對變化的敏捷過程與設(shè)計(jì) 1、而敏捷對預(yù)測未來的方式是全新的,強(qiáng)調(diào)通過提高團(tuán)隊(duì)的能力、設(shè)計(jì)的彈性和流程的靈活性來適應(yīng)變化。這種思路對軟件開發(fā)也是很大的沖擊; 2、軟件設(shè)計(jì)的目標(biāo)-靈活性,因?yàn)樵黾右粋€(gè)功能特性的成本并不單單是為這些功能編碼所花費(fèi)時(shí)間的成本,還應(yīng)該包括特性擴(kuò)展的障礙成本?,F(xiàn)在我們遇到的最大障礙是現(xiàn)在系統(tǒng)的混亂,難以擴(kuò)展; 3、發(fā)現(xiàn)和封裝變化的原則——找出應(yīng)用中可能需要變化之處,把它們獨(dú)立出來,不要和那些不需要變化的代碼交織在一起; 4、抽象穩(wěn)定接口(抽象類),針對接口編程,而不是針對實(shí)現(xiàn)編程; 5、分離變化維度,單一職責(zé)原則; 6、動(dòng)態(tài)綁定還是靜態(tài)綁定,多用組合,少用繼承; 7、創(chuàng)建與使用分離,創(chuàng)建有變化也要封裝。 |
網(wǎng)上訂單、嵌入式項(xiàng)目系統(tǒng)案例練習(xí): 1、現(xiàn)場模擬架構(gòu)需求獲取過程,點(diǎn)評要點(diǎn); 2、采用敏捷方式設(shè)計(jì)案例系統(tǒng)組成架構(gòu)模型; 3、故障單類型的增加后,設(shè)計(jì)如何通過代碼進(jìn)行演化。 |
Day2 (9:00-12:00) 第三部分:改造類項(xiàng)目案例分析與實(shí)踐 |
一、軟件復(fù)用與基于框架技術(shù)的架構(gòu)設(shè)計(jì) 1、框架的選擇/已有系統(tǒng)的架構(gòu); 2、軟件通用服務(wù)組件的設(shè)計(jì); 3、軟件復(fù)用的管理策略:復(fù)用已有的東西,比自己編寫更容易。如果不容易,大家就不會(huì)去復(fù)用; 4、軟件復(fù)用之道:對象級別、模塊、架構(gòu)層次復(fù)用;5、在詳細(xì)設(shè)計(jì)之中,分析發(fā)現(xiàn)共同的行為的抽象和共同的機(jī)制來實(shí)現(xiàn); 6、詳細(xì)設(shè)計(jì)的核心——領(lǐng)域建模,領(lǐng)域模型中的常見問題。 二、軟件腐化與希波克拉底宣言 1、First, Do No Harm. 首先,做到不傷害!— Hippocrates 希波克拉底; 2、Proxy代理模式與軟件修改方案; 3、decorator模式與遺留軟件修改。 三、軟件改造過程 1、初始設(shè)計(jì)的問題分析; 2、拙劣設(shè)計(jì)常見癥狀以及如何發(fā)現(xiàn)和治療; 3、在詳細(xì)設(shè)計(jì)中如何對設(shè)計(jì)問題進(jìn)行重構(gòu); 4、代碼壞味道; 5、常見的重構(gòu)設(shè)計(jì)方式; 6、重構(gòu)到設(shè)計(jì)模式; 7、流程審核的改變。 |
薪酬系統(tǒng)、出租系統(tǒng)等案例設(shè)計(jì)分析與實(shí)操演練 1、結(jié)合多個(gè)案例項(xiàng)目進(jìn)行分析,怎樣發(fā)現(xiàn)和封裝變化,如何通過具體的手段來進(jìn)行適應(yīng)這些變化; 2、分析真實(shí)項(xiàng)目,如何做的詳細(xì)設(shè)計(jì),給我們哪些啟示,我們可以學(xué)習(xí)到什么; 3、分析我們在項(xiàng)目之中是那些原因?qū)е铝藳]有實(shí)現(xiàn)這些目標(biāo); 4、案例分析—如何維護(hù)遺留系統(tǒng)而不是遺留系統(tǒng)變爛; 5、通過該案例分析,對比有時(shí)是因?yàn)槿藛T的設(shè)計(jì)技能導(dǎo)致加速軟件的腐化; 6、通過該案例分析,講師加入項(xiàng)目之后,將進(jìn)行哪些重構(gòu)。 |
Day2 (13:00-16:00) 第四部分:大型系統(tǒng)項(xiàng)目案例分析與實(shí)踐(上) |
一、優(yōu)秀大型系統(tǒng)架構(gòu)設(shè)計(jì)的要點(diǎn) 1、什么是好的設(shè)計(jì)和衡量的手段,世界大師的觀點(diǎn)(Robert C Martin , Peter Code,` James Shor); 2、一個(gè)好的系統(tǒng)設(shè)計(jì)應(yīng)該有如下的性質(zhì):可擴(kuò)展性、靈活性、可插入性; 3、可擴(kuò)展性(Extensibility)容易添加新的功能. 結(jié)合案例,通過那些手段如何實(shí)現(xiàn)該目標(biāo); 4、靈活性(Flexibility)代碼修改平穩(wěn)地發(fā)生. 結(jié)合案例,通過那些手段如何實(shí)現(xiàn)該目標(biāo); 5、可插入性(Pluggability)容易將一個(gè)類抽出去,同時(shí)將另一個(gè)有同樣接口的類加入進(jìn)來. 結(jié)合案例,通過那些手段如何實(shí)現(xiàn)該目標(biāo)。 二、優(yōu)秀大型系統(tǒng)架構(gòu)設(shè)計(jì)的最佳實(shí)踐 1、合理的架構(gòu)設(shè)計(jì)來源于正確的需求過程; 2、業(yè)務(wù)建模和需求分析中的架構(gòu)因素; 3、采用原型法降低架構(gòu)風(fēng)險(xiǎn); 4、架構(gòu)風(fēng)險(xiǎn)管理方法與決策; 5、幾種典型高層架構(gòu)介紹; 6、高層架構(gòu)設(shè)計(jì)的應(yīng)用技巧和實(shí)踐; 7、高層架構(gòu)的表示; 8、非功能性需求對架構(gòu)的影響; 9、架構(gòu)評審與決策; 10、ATAM的參與人員、步驟和結(jié)果。 |
軍隊(duì)大型信息系統(tǒng)設(shè)計(jì)分析與實(shí)操演練 一、需求分析案例練習(xí) 1、案例背景介紹; 2、提出問題,捕獲需求; 3、工作量與開發(fā)計(jì)劃制定。 二、架構(gòu)設(shè)計(jì)案例練習(xí) 1、邏輯架構(gòu)視圖設(shè)計(jì)案例練習(xí); 2、物理架構(gòu)視圖設(shè)計(jì)案例練習(xí); 3、運(yùn)行架構(gòu)視圖設(shè)計(jì)案例練習(xí); 4、數(shù)據(jù)視圖設(shè)計(jì)案例練習(xí); 5、非功能需求對架構(gòu)的影響。 |
Day3 (9:00-12:00) 第五部分:大型系統(tǒng)項(xiàng)目案例分析與實(shí)踐(下) |
一、靈活性設(shè)計(jì)的最佳實(shí)踐 1、多態(tài)(polymorphism)和針對接口的編程; 2、數(shù)據(jù)驅(qū)動(dòng)(Data-Driven Design); 3、元數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì); 4、反射驅(qū)動(dòng)(Meta-data or Reflective ); 5、解釋器驅(qū)動(dòng); 6、腳本引擎技術(shù)。 二、演化式設(shè)計(jì)(Emergent Design) 1、演化式設(shè)計(jì)Emergent Design ; 2、演化設(shè)計(jì)--重構(gòu)帶來了一種新的構(gòu)設(shè)計(jì)方法,稱為反思性設(shè)計(jì)(Reflective Design)。除了創(chuàng)建一種設(shè)計(jì)并用代碼實(shí)現(xiàn)它之外,你現(xiàn)在還可以分析已有代碼的設(shè)計(jì)并改善它。尋求改進(jìn)的一種最好的方法是通過代碼嗅覺(code smells); 3、在詳細(xì)設(shè)計(jì)之中,如何對發(fā)現(xiàn)問題的設(shè)計(jì)進(jìn)行重構(gòu)。 二、軟件設(shè)計(jì)原則/模式 1、項(xiàng)目系統(tǒng)的演變,以及設(shè)計(jì)原則的應(yīng)用效果,通過項(xiàng)目的演化分析這些核心設(shè)計(jì)原則的應(yīng)用場景; 2、通過一個(gè)大型實(shí)例,傳遞Clean Code,設(shè)計(jì)原則等,包括DIY原則,Tell Don't Ask原則,Soild原則(Single Responsibility原則,Open Closed原則,Liskov Substitution原則,Interface Segregation原則,Dependency Inversion原則)。 三、架構(gòu)評審與架構(gòu)重構(gòu) 1、現(xiàn)場設(shè)計(jì)案例系統(tǒng)部署架構(gòu)模型,并開展ATAM評估; 2、現(xiàn)場設(shè)計(jì)案例系統(tǒng)數(shù)據(jù)架構(gòu)模型,討論中間件對架構(gòu)決策的影響; 3、實(shí)操細(xì)化架構(gòu)設(shè)計(jì)練習(xí),嘗試優(yōu)化分解架構(gòu)設(shè)計(jì),使之適應(yīng)未來架構(gòu)變化。 |
銀行、政府等多領(lǐng)域大型核心系統(tǒng)設(shè)計(jì)最佳實(shí)踐案例分析 1、結(jié)合多個(gè)案例項(xiàng)目進(jìn)行分析,怎樣發(fā)現(xiàn)和封裝變化,如何通過具體的手段來進(jìn)行適應(yīng)這些變化; 2、很多公司習(xí)慣做大量的預(yù)習(xí)設(shè)計(jì),這被證明是風(fēng)險(xiǎn)很高的做法。好的架構(gòu)和設(shè)計(jì)是演進(jìn)出來的,通過這個(gè)環(huán)節(jié)了解演進(jìn)式設(shè)計(jì)的方法,包括演進(jìn)式設(shè)計(jì)的方法、工具、模式等內(nèi)容; 3、案例分析,根據(jù)課程介紹的壞癥狀,進(jìn)行重構(gòu)合理的設(shè)計(jì); 4、如何計(jì)劃重構(gòu)活動(dòng)以實(shí)現(xiàn)架構(gòu)演進(jìn),如何從設(shè)計(jì)方法、技術(shù)債務(wù)、復(fù)雜性等角度看架構(gòu)演。 |
Day3 (13:00-16:00) 第六部分 千萬級訪問量網(wǎng)站架構(gòu)變遷案例分析與最佳實(shí)踐 |
三、 用戶體驗(yàn)與交互設(shè)計(jì) 1、基本概念; 2、6大設(shè)計(jì)原則; 3、亞馬遜網(wǎng)站案例剖析。 二、千萬級訪問量的大型網(wǎng)站架構(gòu)變遷 1、物理分離webserver和數(shù)據(jù)庫; 2、增加頁面緩存; 3、增加頁面片段緩存; 4、數(shù)據(jù)緩存; 5、增加webserver ;; 7、分表、DAL和分布式緩存; 8、增加更多的webserver ; 9、數(shù)據(jù)讀寫分離和廉價(jià)存儲(chǔ)方案; 10、大型分布式應(yīng)用和廉價(jià)服務(wù)器群時(shí)代。 |
某Web互聯(lián)網(wǎng)電子商務(wù)系統(tǒng)設(shè)計(jì)最佳實(shí)踐和案例分析 1、如何從開源起步; 2、隨著訪問量的增加如何變遷架構(gòu); 3、淘寶VS 12306,兩類系統(tǒng)架構(gòu)的差異性分析; 4、IBM小型機(jī)會(huì)被大量X86服務(wù)器替代嗎?各自的應(yīng)用背景與優(yōu)勢分析; 5、云計(jì)算、移動(dòng)應(yīng)用等新興技術(shù)的發(fā)展意味著什么?創(chuàng)業(yè)黃金期的到來。 |
1、了解軟件設(shè)計(jì)基本原理、主要原則和國內(nèi)外主流方法論;
2、掌握前沿技術(shù)的同時(shí),獲得解決實(shí)際問題的規(guī)范和能力;
3、幫助軟件企業(yè)完善軟件架構(gòu)設(shè)計(jì)、評審流程,改善軟件開發(fā)質(zhì)量和效率。
上一篇:高端商務(wù)禮儀與職業(yè)形象塑造(賀文靜)
下一篇:軟件配置管理培訓(xùn)(郭老師)
培訓(xùn)現(xiàn)場
講師培訓(xùn)公告