重構(gòu)-復(fù)雜遺留系統(tǒng)重構(gòu)與維護(hù) 敏捷專業(yè)開發(fā)者必備的基本技能
我要報(bào)名編輯日期 2018-06-14 閱讀次數(shù):1435 次
【課程背景】
軟件重構(gòu)面臨的背景都是相似的,程序員們?yōu)榱丝焖偻瓿尚枨蠛蜕暇€而寫出了最基本的代碼,而在功能的不斷擴(kuò)充過程中,以打補(bǔ)丁的方式對(duì)代碼進(jìn)行擴(kuò)充,中間還會(huì)面臨著開發(fā)人員的變更和離職。逐漸的,代碼就會(huì)越來越臃腫,漸漸的變得難以維護(hù)。
很多開發(fā)人員對(duì)重構(gòu)有著嚴(yán)重的誤解,錯(cuò)誤的認(rèn)為重構(gòu)是專門安排一個(gè)階段來進(jìn)行的,但是我們卻認(rèn)為重構(gòu)是持續(xù)進(jìn)行的,而不是在項(xiàng)目結(jié)束時(shí)、發(fā)布版本時(shí)、迭代結(jié)束時(shí)甚至不是每天快下班時(shí)才進(jìn)行的.重構(gòu)是我們每隔一個(gè)小時(shí)或者半個(gè)小時(shí)就要去做的事情。通過重構(gòu),我們可以持續(xù)地保持代碼盡可能干凈,簡(jiǎn)單并且具有表達(dá)力。因此重構(gòu)成為了每個(gè)開發(fā)人員必備的基本技能,可是國(guó)內(nèi)的開發(fā)人員卻很少去重構(gòu)。
那么糟糕的軟件代碼結(jié)構(gòu)會(huì)有什么樣的影響?首先是開發(fā)效率的降低,在糟糕架構(gòu)下加進(jìn)新功能,會(huì)受之前代碼的影響,可能存在意想不到的改動(dòng)點(diǎn)和問題點(diǎn),開發(fā)和調(diào)試時(shí)間都會(huì)大大增加;其次是故障率的提升,在質(zhì)量低下的代碼中,總是容易藏著很多不易發(fā)現(xiàn)的坑,這些都會(huì)成為故障的隱患;同時(shí),架構(gòu)也會(huì)使得需求的完成大打折扣,使得設(shè)計(jì)好的目標(biāo),因?yàn)榧軜?gòu)限制或者性能等原因,只能完成80%甚至更低。
大多數(shù)軟件開發(fā)方面的培訓(xùn)都是關(guān)于新系統(tǒng)的設(shè)計(jì)和開發(fā),講師教你如何從無到有創(chuàng)建出一個(gè)新的應(yīng)用來。然而在真實(shí)的項(xiàng)目,許多產(chǎn)品如今往往依然運(yùn)行在基于復(fù)雜架構(gòu)設(shè)計(jì)和傳統(tǒng)技術(shù)實(shí)現(xiàn)的遺留系統(tǒng)上,并依賴著它們, 如何摸索出有效方法應(yīng)對(duì)這些遺留系統(tǒng), 已經(jīng)成為我們最需解決的問題之一。
隨著不同產(chǎn)品的推出、不同客戶,不同版本的發(fā)布,需要維護(hù)的遺留代碼越來越多,重構(gòu)也就在所難免. 迄今為止所有的軟件系統(tǒng)都會(huì)變成遺留系統(tǒng),并且都遭遇了緩慢,不可抗拒的腐化,因此軟件開發(fā)人員不得不面對(duì)既有系統(tǒng)的混亂代碼.而本課程正是告訴你如何重構(gòu)既有的遺留系統(tǒng), 如何重構(gòu)代碼,重構(gòu)設(shè)計(jì),重構(gòu)架構(gòu).
這就是本課程所要講述的內(nèi)容---重構(gòu)。簡(jiǎn)言之,該課程教你如何扭轉(zhuǎn)系統(tǒng)腐化,重構(gòu)復(fù)雜遺留系統(tǒng),減低維護(hù)成本。在面對(duì)一個(gè)錯(cuò)綜復(fù)雜的,不透明的,令人費(fèi)解的系統(tǒng)時(shí)如何慢慢地,逐步地將其變成一個(gè)簡(jiǎn)單的,有良好組織和設(shè)計(jì)的系統(tǒng)。
【培訓(xùn)特色】
本課程注重實(shí)戰(zhàn),采用案例貫穿方式完成實(shí)踐,收集了大量的真實(shí)案例,針對(duì)項(xiàng)目過程中技術(shù)人員常犯的錯(cuò)誤進(jìn)行了匯總,研討,并形成培訓(xùn)教程。本次培訓(xùn)從程序員的編程思維開始講解,通過大量的真實(shí)案例,詳細(xì)地介紹了重構(gòu)需要注意的要點(diǎn)以及難點(diǎn),這些知識(shí)都是講師十幾年經(jīng)驗(yàn)的總結(jié)。
本次課程1/3時(shí)間講解核心思想,1/3時(shí)間動(dòng)手重構(gòu)實(shí)踐,1/3點(diǎn)評(píng)分析總結(jié)。
【培訓(xùn)對(duì)象】
各類軟件研發(fā)中心的軟件設(shè)計(jì)師、架構(gòu)師, 項(xiàng)目經(jīng)理,技術(shù)總監(jiān),質(zhì)量部門經(jīng)理。對(duì)于重構(gòu)技術(shù)懷有疑問和困惑,需要梳理解答的團(tuán)隊(duì)和個(gè)人,效果更佳。
【學(xué)員基礎(chǔ)】
學(xué)員學(xué)習(xí)本課程應(yīng)具備下列基礎(chǔ)知識(shí):
目前正在面臨復(fù)雜遺留系統(tǒng),必須需要維護(hù)和重構(gòu)
具有面向?qū)ο蠡靖拍?span>,熟悉基本設(shè)計(jì)模式
【課程大綱】
以下大綱內(nèi)容較多,實(shí)際授課時(shí)根據(jù)學(xué)員課前調(diào)查進(jìn)行調(diào)整,并且實(shí)際授課不一定按此順序。