軟件設(shè)計(jì)全程演練與最佳實(shí)踐培訓(xùn)(北京,7月17-19日)
【舉辦單位】北京曼頓培訓(xùn)網(wǎng) www.mdpxb.com 中國(guó)培訓(xùn)資訊網(wǎng) www.e71edu.com
【咨詢電話】4006820825 010-56133998 13810210257
【培訓(xùn)日期】2018年7月17-19日
【培訓(xùn)地點(diǎn)】北京
【培訓(xùn)對(duì)象】
1、中高級(jí)程序員、系統(tǒng)分析員、架構(gòu)設(shè)計(jì)師、產(chǎn)品市場(chǎng)技術(shù)人員。
2、具備IT部門(mén)工作經(jīng)驗(yàn),將負(fù)責(zé)信息化系統(tǒng)規(guī)劃等相關(guān)任務(wù)的技術(shù)人員。
3、希望加強(qiáng)軟件架構(gòu)理論和實(shí)踐能力的軟件開(kāi)發(fā)人員。
4、負(fù)責(zé)軟件產(chǎn)品規(guī)劃與定義的相關(guān)人員。
5、需要了解軟件設(shè)計(jì)全過(guò)程的項(xiàng)目經(jīng)理。
【課程背景】
在軟件產(chǎn)品的開(kāi)發(fā)組織中,軟件設(shè)計(jì)人員是軟件企業(yè)新產(chǎn)品、新技術(shù)體系的構(gòu)建者,是目前軟件開(kāi)發(fā)中急需的高層次技術(shù)人才。為此,培訓(xùn)中心特舉辦“軟件設(shè)計(jì)全程演練與最佳實(shí)踐”培訓(xùn)班
【授課思路】
重點(diǎn)關(guān)注提升軟件開(kāi)發(fā)人員設(shè)計(jì)能力,整個(gè)課程由多個(gè)實(shí)戰(zhàn)案例貫串始終,老師帶領(lǐng)大家通過(guò)實(shí)戰(zhàn)練習(xí),一起走完項(xiàng)目設(shè)計(jì)的全過(guò)程。案例練習(xí)中老師著重闡述和分析在實(shí)際項(xiàng)目中遇到的問(wèn)題,提煉架構(gòu)決策的思維方法,使學(xué)員體會(huì)在項(xiàng)目各個(gè)階段中架構(gòu)設(shè)計(jì)的發(fā)展演化規(guī)律,從而在實(shí)戰(zhàn)中提煉理論,培養(yǎng)學(xué)員的實(shí)際應(yīng)用能力。課程主要特點(diǎn):
1、理論與實(shí)踐相結(jié)合,注重案例的講解;
2、有深刻的理論深度,準(zhǔn)確把握設(shè)計(jì)原則與要義;
3、全真案例講解,學(xué)員邊做邊學(xué),具體、深刻;
4、能夠?qū)W(xué)員提出的案例進(jìn)行咨詢,指導(dǎo)分析、設(shè)計(jì)。
【學(xué)員基礎(chǔ)】
1、3年以上開(kāi)發(fā)經(jīng)驗(yàn),經(jīng)歷過(guò)頻繁需求變更或者系統(tǒng)重復(fù)開(kāi)發(fā)的折磨。
2、熟悉Java/C#/C++任意一種面向?qū)ο笳Z(yǔ)言或者具備面向?qū)ο缶幊袒靖拍睢?/p>
【課程目標(biāo)】
1、了解軟件設(shè)計(jì)基本原理、主要原則和國(guó)內(nèi)外主流方法論;
2、掌握前沿技術(shù)的同時(shí),獲得解決實(shí)際問(wèn)題的規(guī)范和能力;
3、幫助軟件企業(yè)完善軟件架構(gòu)設(shè)計(jì)、評(píng)審流程,改善軟件開(kāi)發(fā)質(zhì)量和效率。
【課程大綱】
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)師的成長(zhǎng)
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)-能力比方法重要,但改變方法比改變能力簡(jiǎn)單多了
2、優(yōu)秀的設(shè)計(jì)來(lái)自優(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ì)的開(kāi)端
1、 不管你在何處工作,構(gòu)建些什么,用何種語(yǔ)言,在軟件開(kāi)發(fā)上,一直最痛苦的事情是什么?? 或者什么是你開(kāi)發(fā)之中最討厭的問(wèn)題是什么?---需求變更 2、殺死一個(gè)程序員不需要刀,只要需求變3次就好了!!
3、軟件不斷變更法則:真實(shí)世界中使用的程序必須進(jìn)行變更,否則它在環(huán)境中的作用就會(huì)越來(lái)越小.
4、需求改變的態(tài)度-拒絕變化無(wú)用,積極心態(tài)面對(duì)變化
二、針對(duì)變化的敏捷過(guò)程與設(shè)計(jì)
1、而敏捷對(duì)預(yù)測(cè)未來(lái)的方式是全新的,強(qiáng)調(diào)通過(guò)提高團(tuán)隊(duì)的能力、設(shè)計(jì)的彈性和流程的靈活性來(lái)適應(yīng)變化。這種思路對(duì)軟件開(kāi)發(fā)也是很大的沖擊。
2、軟件設(shè)計(jì)的目標(biāo)-靈活性,因?yàn)樵黾右粋(gè)功能特性的成本并不單單是為這些功能編碼所花費(fèi)時(shí)間的成本,還應(yīng)該包括特性擴(kuò)展的障礙成本。現(xiàn)在我們遇到的最大障礙是現(xiàn)在系統(tǒng)的混亂,難以擴(kuò)展。
3、發(fā)現(xiàn)和封裝變化的原則——找出應(yīng)用中可能需要變化之處,把它們獨(dú)立出來(lái),不要和那些不需要變化的代碼交織在一起.
4、抽象穩(wěn)定接口(抽象類),針對(duì)接口編程,而不是針對(duì)實(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)場(chǎng)模擬架構(gòu)需求獲取過(guò)程,點(diǎn)評(píng)要點(diǎn);
2、采用敏捷方式設(shè)計(jì)案例系統(tǒng)組成架構(gòu)模型;
3、故障單類型的增加后,設(shè)計(jì)如何通過(guò)代碼進(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ù)用已有的東西,比自己編寫(xiě)更容易。如果不容易,大家就不會(huì)去復(fù)用。
4、軟件復(fù)用之道:對(duì)象級(jí)別、模塊、架構(gòu)層次復(fù)用5、在詳細(xì)設(shè)計(jì)之中,分析發(fā)現(xiàn)共同的行為的抽象和共同的機(jī)制來(lái)實(shí)現(xiàn)
6、詳細(xì)設(shè)計(jì)的核心——領(lǐng)域建模,領(lǐng)域模型中的常見(jiàn)問(wèn)題
二、軟件腐化與希波克拉底宣言
1、 First, Do No Harm.?
首先,做到不傷害!— Hippocrates? 希波克拉底
2、 Proxy代理模式與軟件修改方案
3、 decorator模式與遺留軟件修改
三、軟件改造過(guò)程
1、初始設(shè)計(jì)的問(wèn)題分析
2、拙劣設(shè)計(jì)常見(jiàn)癥狀以及如何發(fā)現(xiàn)和治療
3、在詳細(xì)設(shè)計(jì)中如何對(duì)設(shè)計(jì)問(wèn)題進(jìn)行重構(gòu)
4、代碼壞味道
5、常見(jiàn)的重構(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)和封裝變化,如何通過(guò)具體的手段來(lái)進(jìn)行適應(yīng)這些變化
2、分析真實(shí)項(xiàng)目,如何做的詳細(xì)設(shè)計(jì),給我們哪些啟示,我們可以學(xué)習(xí)到什么
3、分析我們?cè)陧?xiàng)目之中是那些原因?qū)е铝藳](méi)有實(shí)現(xiàn)這些目標(biāo).
4、案例分析—如何維護(hù)遺留系統(tǒng)而不是遺留系統(tǒng)變爛
5、通過(guò)該案例分析,對(duì)比有時(shí)是因?yàn)槿藛T的設(shè)計(jì)技能導(dǎo)致加速軟件的腐化
6、通過(guò)該案例分析,講師加入項(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ò)展性、靈活性、可插入性。-Peter Code
3、可擴(kuò)展性(Extensibility)容易添加新的功能. 結(jié)合案例,通過(guò)那些手段如何實(shí)現(xiàn)該目標(biāo)
4、靈活性(Flexibility)代碼修改平穩(wěn)地發(fā)生. 結(jié)合案例,通過(guò)那些手段如何實(shí)現(xiàn)該目標(biāo)
5、可插入性(Pluggability)容易將一個(gè)類抽出去,同時(shí)將另一個(gè)有同樣接口的類加入進(jìn)來(lái). 結(jié)合案例,通過(guò)那些手段如何實(shí)現(xiàn)該目標(biāo)
二、優(yōu)秀大型系統(tǒng)架構(gòu)設(shè)計(jì)的最佳實(shí)踐
1、合理的架構(gòu)設(shè)計(jì)來(lái)源于正確的需求過(guò)程;
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、非功能性需求對(duì)架構(gòu)的影響;
9、架構(gòu)評(píng)審與決策;
10、ATAM的參與人員、步驟和結(jié)果;
軍隊(duì)大型信息系統(tǒng)設(shè)計(jì)分析與實(shí)操演練
一、需求分析案例練習(xí)
1、案例背景介紹
2、提出問(wèn)題,捕獲需求
3、工作量與開(kāi)發(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、非功能需求對(duì)架構(gòu)的影響
Day3
(9:00-12:00)
第五部分:大型系統(tǒng)項(xiàng)目案例分析與實(shí)踐(下)
一、靈活性設(shè)計(jì)的最佳實(shí)踐
1、 多態(tài)(polymorphism)和針對(duì)接口的編程
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)帶來(lái)了一種新的構(gòu)設(shè)計(jì)方法,稱為反思性設(shè)計(jì)(Reflective Design)。除了創(chuàng)建一種設(shè)計(jì)并用代碼實(shí)現(xiàn)它之外,你現(xiàn)在還可以分析已有代碼的設(shè)計(jì)并改善它。尋求改進(jìn)的一種最好的方法是通過(guò)代碼嗅覺(jué)(code smells).
3、在詳細(xì)設(shè)計(jì)之中,如何對(duì)發(fā)現(xiàn)問(wèn)題的設(shè)計(jì)進(jìn)行重構(gòu)
二、軟件設(shè)計(jì)原則/模式
1、項(xiàng)目系統(tǒng)的演變,以及設(shè)計(jì)原則的應(yīng)用效果,通過(guò)項(xiàng)目的演化分析這些核心設(shè)計(jì)原則的應(yīng)用場(chǎng)景
2、通過(guò)一個(gè)大型實(shí)例,傳遞Clean Code,設(shè)計(jì)原則等,包括DIY原則,Tell Don't Ask原則,Soild原則(Single Responsibility原則,Open Closed原則,Liskov Substitution原則,Interface Segregation原則,Dependency Inversion原則)。
三、架構(gòu)評(píng)審與架構(gòu)重構(gòu)
1、現(xiàn)場(chǎng)設(shè)計(jì)案例系統(tǒng)部署架構(gòu)模型,并開(kāi)展ATAM評(píng)估;
2、現(xiàn)場(chǎng)設(shè)計(jì)案例系統(tǒng)數(shù)據(jù)架構(gòu)模型,討論中間件對(duì)架構(gòu)決策的影響;
3、實(shí)操細(xì)化架構(gòu)設(shè)計(jì)練習(xí),嘗試優(yōu)化分解架構(gòu)設(shè)計(jì),使之適應(yīng)未來(lái)架構(gòu)變化。 銀行、政府等多領(lǐng)域大型核心系統(tǒng)設(shè)計(jì)最佳實(shí)踐案例分析
1、結(jié)合多個(gè)案例項(xiàng)目進(jìn)行分析,怎樣發(fā)現(xiàn)和封裝變化,如何通過(guò)具體的手段來(lái)進(jìn)行適應(yīng)這些變化
2、很多公司習(xí)慣做大量的預(yù)習(xí)設(shè)計(jì),這被證明是風(fēng)險(xiǎn)很高的做法。好的架構(gòu)和設(shè)計(jì)是演進(jìn)出來(lái)的,通過(guò)這個(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)演進(jìn)
Day3
(13:00-16:00)
第六部分 千萬(wàn)級(jí)訪問(wèn)量網(wǎng)站架構(gòu)變遷案例分析與最佳實(shí)踐
一、用戶體驗(yàn)與交互設(shè)計(jì)
1.基本概念
2.6大設(shè)計(jì)原則
3.亞馬遜網(wǎng)站案例剖析
二、千萬(wàn)級(jí)訪問(wèn)量的大型網(wǎng)站架構(gòu)變遷
1.物理分離webserver和數(shù)據(jù)庫(kù)
2.增加頁(yè)面緩存
3.增加頁(yè)面片段緩存
4.數(shù)據(jù)緩存
5.增加webserver
6.分庫(kù)
7.分表、DAL和分布式緩存
8.增加更多的webserver
9.數(shù)據(jù)讀寫(xiě)分離和廉價(jià)存儲(chǔ)方案
10.大型分布式應(yīng)用和廉價(jià)服務(wù)器群時(shí)代
某Web互聯(lián)網(wǎng)電子商務(wù)系統(tǒng)設(shè)計(jì)最佳實(shí)踐和案例分析
1、如何從開(kāi)源起步
2、隨著訪問(wèn)量的增加如何變遷架構(gòu);
3、淘寶 VS 12306,兩類系統(tǒng)架構(gòu)的差異性分析;
4、IBM小型機(jī)會(huì)被大量X86服務(wù)器替代嗎?各自的應(yīng)用背景與優(yōu)勢(shì)分析;
5、云計(jì)算、移動(dòng)應(yīng)用等新興技術(shù)的發(fā)展意味著什么?創(chuàng)業(yè)黃金期的到來(lái)。
【講師介紹】
楊老師,曼頓培訓(xùn)網(wǎng)網(wǎng)(www.mdpxb.com)資深講師?偤笮畔⒒檰(wèn),國(guó)家SOA技術(shù)專家委常務(wù)委員、ISO國(guó)際標(biāo)準(zhǔn)組織SOA組中國(guó)區(qū)代表(首批4人小組成員)、國(guó)家人事部考試中心計(jì)算機(jī)命題評(píng)審委員會(huì)委員、軍隊(duì)信息化標(biāo)準(zhǔn)委員會(huì)副秘書(shū)長(zhǎng)。
【費(fèi)用及報(bào)名】
1、費(fèi)用:培訓(xùn)費(fèi)5000元(含培訓(xùn)費(fèi)、講義費(fèi));如需食宿,會(huì)務(wù)組可統(tǒng)一安排,費(fèi)用自理。
2、報(bào)名咨詢:4006820825 010-56133998 56028090 13810210257 鮑老師
3、報(bào)名流程:電話登記-->填寫(xiě)報(bào)名表-->發(fā)出培訓(xùn)確認(rèn)函
4、備注:如課程已過(guò)期,請(qǐng)?jiān)L問(wèn)我們的網(wǎng)站,查詢最新課程
5、詳細(xì)資料請(qǐng)?jiān)L問(wèn)北京曼頓培訓(xùn)網(wǎng):www.mdpxb.com (每月在全國(guó)開(kāi)設(shè)四百多門(mén)公開(kāi)課,歡迎報(bào)名學(xué)習(xí))