各有關(guān)單位:
中國(guó)科學(xué)院計(jì)算技術(shù)研究所是國(guó)家專(zhuān)門(mén)的計(jì)算技術(shù)研究機(jī)構(gòu),同時(shí)也是中國(guó)信息化建設(shè)的重要支撐單位,中科院計(jì)算所培訓(xùn)中心是致力于高端IT類(lèi)人才培養(yǎng)及企業(yè)內(nèi)訓(xùn)的專(zhuān)業(yè)培訓(xùn)機(jī)構(gòu)。中心憑借科學(xué)院的強(qiáng)大師資力量,在總結(jié)多年大型軟件開(kāi)發(fā)和組織經(jīng)驗(yàn)的基礎(chǔ)上,自主研發(fā)出一整套課程體系,其目的是希望能夠切實(shí)幫助中國(guó)軟件企業(yè)培養(yǎng)高級(jí)軟件技術(shù)人才,提升整體研發(fā)能力,迄今為止已先后為國(guó)家培養(yǎng)了數(shù)萬(wàn)名計(jì)算機(jī)專(zhuān)業(yè)人員,并先后為數(shù)千家大型國(guó)內(nèi)外企業(yè)進(jìn)行過(guò)專(zhuān)門(mén)的定制培訓(xùn)服務(wù)。
在軟件產(chǎn)品的開(kāi)發(fā)組織中,軟件設(shè)計(jì)人員是軟件企業(yè)新產(chǎn)品、新技術(shù)體系的構(gòu)建者,是目前軟件開(kāi)發(fā)中急需的高層次技術(shù)人才。為此,培訓(xùn)中心特舉辦“軟件設(shè)計(jì)全程演練與佳實(shí)踐”培訓(xù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)理。
二、學(xué)員基礎(chǔ)
1、三年以上開(kāi)發(fā)經(jīng)驗(yàn),經(jīng)歷過(guò)頻繁需求變更或者系統(tǒng)重復(fù)開(kāi)發(fā)的折磨;
2、熟悉Java/C#/C 任意一種面向?qū)ο笳Z(yǔ)言或者具備面向?qū)ο缶幊袒靖拍睢?br />
三、師資
由業(yè)界知名軟件架構(gòu)師親自授課:
楊老師 中科院計(jì)算所培訓(xùn)中心特聘講師,總后信息化顧問(wèn),國(guó)家SOA技術(shù)專(zhuān)家委常務(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)。
四、授課思路
重點(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ì)。
五、培訓(xùn)內(nèi)容
Day1(9:00-12:00)
部分:架構(gòu)設(shè)計(jì)思想與原理
內(nèi)容
一、架構(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ì)師能力模型。
案例實(shí)踐與練習(xí)
案例分析,某研發(fā)中心引入敏捷的實(shí)戰(zhàn)分析,什么才是真正的敏捷
1、 某研發(fā)團(tuán)隊(duì)5年前引入敏捷的失敗教訓(xùn)-能力比方法重要,但改變方法比改變能力簡(jiǎn)單多了;
2、優(yōu)秀的設(shè)計(jì)來(lái)自?xún)?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ò)展的障礙成本?,F(xiàn)在我們遇到的大障礙是現(xiàn)在系統(tǒng)的混亂,難以擴(kuò)展;
3、發(fā)現(xiàn)和封裝變化的原則——找出應(yīng)用中可能需要變化之處,把它們獨(dú)立出來(lái),不要和那些不需要變化的代碼交織在一起;
4、抽象穩(wěn)定接口(抽象類(lèi)),針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程;
5、分離變化維度,單一職責(zé)原則;
6、動(dòng)態(tài)綁定還是靜態(tài)綁定,多用組合,少用繼承;
7、創(chuàng)建與使用分離,創(chuàng)建有變化也要封裝。
案例實(shí)踐與練習(xí)
網(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、故障單類(lèi)型的增加后,設(shè)計(jì)如何通過(guò)代碼進(jìn)行演化。
Day2(9:00-12:00)
第三部分:改造類(lèi)項(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ì)模式;
案例實(shí)踐與練習(xí)
薪酬系統(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);
案例實(shí)踐與練習(xí)
軍隊(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ì)方法,稱(chēng)為反思性設(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)變化。
案例實(shí)踐與練習(xí)
銀行、政府等多領(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)演。
Day3(13:00-16:00)
第六部分 千萬(wàn)級(jí)訪問(wèn)量網(wǎng)站架構(gòu)變遷案例分析與佳實(shí)踐
三、用戶(hù)體驗(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 ;;
7、分表、DAL和分布式緩存;
8、增加更多的webserver ;
9、數(shù)據(jù)讀寫(xiě)分離和廉價(jià)存儲(chǔ)方案;
10、大型分布式應(yīng)用和廉價(jià)服務(wù)器群時(shí)代。
案例實(shí)踐與練習(xí)
某Web互聯(lián)網(wǎng)電子商務(wù)系統(tǒng)設(shè)計(jì)佳實(shí)踐和案例分析
1、如何從開(kāi)源起步;
2、隨著訪問(wèn)量的增加如何變遷架構(gòu);
3、淘寶 VS 12306,兩類(lèi)系統(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)時(shí)間、地點(diǎn)
時(shí)間: 2018年7月17日-7月19日 地點(diǎn):北京
七、證書(shū)
培訓(xùn)結(jié)束,頒發(fā)中科院計(jì)算所職業(yè)培訓(xùn)中心“高級(jí)軟件設(shè)計(jì)師”結(jié)業(yè)證書(shū)。
八、費(fèi)用
培訓(xùn)費(fèi):5000元/人(含教材、證書(shū)、午餐、學(xué)習(xí)用具等)。住宿協(xié)助安排,費(fèi)用自理。