<del id="lmbdk"><dl id="lmbdk"></dl></del>
    
    
      <th id="lmbdk"></th>
      <strong id="lmbdk"><form id="lmbdk"></form></strong>

        1. <th id="lmbdk"><progress id="lmbdk"></progress></th>
          您好!歡迎光臨普瑞思咨詢網(wǎng)站!
          服務(wù)熱線 設(shè)為首頁(yè) | 加入收藏 | 網(wǎng)站地圖

          您的位置:首頁(yè) >> 培訓(xùn)課程 >> 研發(fā)項(xiàng)目 >> 正文

          培訓(xùn)課程

          軟件重構(gòu)實(shí)戰(zhàn)訓(xùn)練營(yíng)

          咨詢電話

          主辦單位:上海普瑞思管理咨詢有限公司  上海創(chuàng)卓商務(wù)咨詢有限公司
          日期地址:2015年03月28-30日 北京
          培訓(xùn)費(fèi)用:6800元/人(含培訓(xùn)費(fèi)、資料費(fèi)、午餐、稅費(fèi)等)
          課程簡(jiǎn)介:
          軟件重構(gòu)面臨的背景都是相似的,程序員們?yōu)榱丝焖偻瓿尚枨蠛蜕暇€而寫(xiě)出了最基本的代碼,而在功能的不斷擴(kuò)充過(guò)程中,以打補(bǔ)丁的方式對(duì)代碼進(jìn)行擴(kuò)充,中間還會(huì)面臨著開(kāi)發(fā)人員的變更和離職。逐漸的,代碼就會(huì)越來(lái)越臃腫,漸漸的變得難以維護(hù)。
          很多開(kāi)發(fā)人員對(duì)重構(gòu)有著嚴(yán)重的誤解,錯(cuò)誤的認(rèn)為重構(gòu)是專門(mén)安排一個(gè)階段來(lái)進(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í)就要去做的事情。通過(guò)重構(gòu),我們可以持續(xù)地保持代碼盡可能干凈,簡(jiǎn)單并且具有表達(dá)力。因此重構(gòu)成為了每個(gè)開(kāi)發(fā)人員必備的基本技能,可是國(guó)內(nèi)的開(kāi)發(fā)人員卻很少去重構(gòu)。
          那么糟糕的軟件代碼結(jié)構(gòu)會(huì)有什么樣的影響?首先是開(kāi)發(fā)效率的降低,在糟糕架構(gòu)下加進(jìn)新功能,會(huì)受之前代碼的影響,可能存在意想不到的改動(dòng)點(diǎn)和問(wèn)題點(diǎn),開(kāi)發(fā)和調(diào)試時(shí)間都會(huì)大大增加;其次是故障率的提升,在質(zhì)量低下的代碼中,總是容易藏著很多不易發(fā)現(xiàn)的坑,這些都會(huì)成為故障的隱患;同時(shí),架構(gòu)也會(huì)使得需求的完成大打折扣,使得設(shè)計(jì)好的目標(biāo),因?yàn)榧軜?gòu)限制或者性能等原因,只能完成80%甚至更低。
          大多數(shù)軟件開(kāi)發(fā)方面的培訓(xùn)都是關(guān)于新系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā),講師教你如何從無(wú)到有創(chuàng)建出一個(gè)新的應(yīng)用來(lái)。然而在真實(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)成為我們最需解決的問(wèn)題之一。
          隨著不同產(chǎn)品的推出、不同客戶,不同版本的發(fā)布,需要維護(hù)的遺留代碼越來(lái)越多,重構(gòu)也就在所難免. 迄今為止所有的軟件系統(tǒng)都會(huì)變成遺留系統(tǒng),并且都遭遇了緩慢,不可抗拒的腐化,因此軟件開(kāi)發(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)目過(guò)程中技術(shù)人員常犯的錯(cuò)誤進(jìn)行了匯總,研討,并最終形成培訓(xùn)教程。本次培訓(xùn)從程序員的編程思維開(kāi)始講解,通過(guò)大量的真實(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é)。
          學(xué)員基礎(chǔ)
          學(xué)員學(xué)習(xí)本課程應(yīng)具備下列基礎(chǔ)知識(shí):
          目前正在面臨復(fù)雜遺留系統(tǒng),必須需要維護(hù)和重構(gòu)
          具有面向?qū)ο蠡靖拍?熟悉基本設(shè)計(jì)模式
          培訓(xùn)內(nèi)容
          以下大綱內(nèi)容較多,實(shí)際授課時(shí)根據(jù)學(xué)員課前調(diào)查進(jìn)行調(diào)整,并且實(shí)際授課不一定按此順序。
          授課內(nèi)容
          第一部分  為什么軟件需要及時(shí)重構(gòu)
          第一單元  軟件腐爛--重構(gòu)的必要性
          內(nèi)容一:軟件業(yè)者的反思:軟件腐爛
          1.軟件腐爛(Software rot),也叫做代碼腐爛(code rot)或軟件腐朽(software decay)。它描述了隨著時(shí)間的逝去感知到軟件的緩慢衰退,其將最終導(dǎo)致它變得不完善、不可使用或難以維護(hù)。
          2.軟件腐爛(Software rot)有兩種形式:
          3.        
          1)隱匿的腐爛:軟件逐漸不再(仍)被使用隨著剩余的應(yīng)用程序的改變變得不能用。它已經(jīng)被觀察到不再被使用的軟件有可能一年的半衰期;
          4.        
          2) 活動(dòng)的腐爛:軟件隨著不斷地被修改趨向于失去它的完整性。
          5.破窗效應(yīng)與技術(shù)債務(wù)
          6. 案例演示1-通過(guò)演示大型項(xiàng)目,隨著客戶需求的變化,導(dǎo)致軟件結(jié)構(gòu)混亂,大家反思,為什么?  你認(rèn)為軟件腐爛的原因?反思你們公司的軟件系統(tǒng)也面臨這樣的問(wèn)題嗎?
          內(nèi)容二:軟件維護(hù)性定律—軟件從業(yè)者必須知道的定律
          1. 軟件變化定律:軟件存在的時(shí)間越久,它的某個(gè)部分需要變化的可能性越大
          2. 軟件缺陷定律:在軟件中新增缺陷的可能性與代碼修改量成正比
          3. 軟件簡(jiǎn)潔定律:軟件任何一部分的維護(hù)難度,反比于該部門(mén)的簡(jiǎn)潔程度
          4. 軟件可維護(hù)方程式
          D=V/E 
          D代表變化的合意程度,V代表價(jià)值,E維護(hù)成本,也就是說(shuō)明,相對(duì)減低實(shí)現(xiàn)成本,降低維護(hù)成本更重要。
          5.軟件設(shè)計(jì)定律:相比降低開(kāi)發(fā)成本,降低維護(hù)成本更加重要。維護(hù)成本正比于系統(tǒng)的復(fù)雜程度。
          案例演示-通過(guò)大型項(xiàng)目,介紹這些基本的軟件維護(hù)定律?也許大家都明白,但是我是否真的關(guān)注這些了嗎?
          第二部分  重構(gòu)基本概念
          第二單元  何為重構(gòu)
          內(nèi)容一:重構(gòu)
          1.重構(gòu)概述
          2.何時(shí)重構(gòu)
          3.重構(gòu)的誤區(qū)
          4.重構(gòu)是持續(xù)進(jìn)行的,不要先編寫(xiě)爛代碼,再抽出重構(gòu)
          5.如何發(fā)現(xiàn)哪些地方需要重構(gòu)
          6.如何保證重構(gòu)的正確
          7.如何測(cè)試重構(gòu)
          8.通過(guò)一個(gè)小案例演示重構(gòu)的基本思想(什么時(shí)間重構(gòu),如何發(fā)現(xiàn)重構(gòu)點(diǎn),如何保證重構(gòu)的正確性,最后如何驗(yàn)收)
          內(nèi)容二:案例—通過(guò)實(shí)際項(xiàng)目演示重構(gòu)
          1.介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì)
          2.閱讀代碼指出代碼壞癥狀
          3.通過(guò)重構(gòu)逐步改善代碼質(zhì)量
          4.通過(guò)該案例演示重構(gòu)的過(guò)程,我們遇到的難處,如何解決?
          內(nèi)容三:重構(gòu)關(guān)鍵—代碼的壞味道
          1.代碼壞味道概述
          2.代碼壞味道的分類
          3.識(shí)別代碼壞味道,是重構(gòu)的最重要一步
          4.所謂重構(gòu),無(wú)非就是嗅到壞味道,然后,一小步一小步的改了它。問(wèn)題是,很多人對(duì)壞味道的容忍度讓他們嗅不到壞味道,
          5.案例分析—通過(guò)真實(shí)項(xiàng)目的代碼,分析代碼壞味道
          第三單元  重構(gòu)內(nèi)容四一:重構(gòu)
          1.重構(gòu)手法概述
          2.簡(jiǎn)要演示重構(gòu)的主要手法
          3.使用IDE重構(gòu)工具進(jìn)行重構(gòu)
          4.通過(guò)案例演示如何通過(guò)重構(gòu)工具完成重構(gòu)
          內(nèi)容二:Rhythm of Refactoring -baby step
          1.Baby steps involve making a few code changes and then checking your work by running tests. Typical refactorings take seconds or minutes to perform
          2.The Rhythm of Refactoring goes like this:
          a)Verify that all automated tests (microtests) pass
          b)Decide what code to change
          c)Implement one or more refactorings carefully
          d)Run the microtests whenever you wish to confirm that changes have not altered system behavior
          e)Repeat until the refactoring is complete or revert to an earlier state
          第四單元  重構(gòu)難題
          內(nèi)容一:重構(gòu)技術(shù)難題
          1.如何發(fā)現(xiàn)重構(gòu)點(diǎn)
          2.知道重構(gòu)的目標(biāo)(結(jié)果)
          3.如何去重構(gòu)—重構(gòu)實(shí)踐
          4.如何保證重構(gòu)的正確性-單元測(cè)試
          內(nèi)容二:重構(gòu)業(yè)務(wù)難題
          1.重構(gòu)手法概述
          2.簡(jiǎn)要演示重構(gòu)的主要手法
          第三部分  重構(gòu)實(shí)戰(zhàn)1一函數(shù)相關(guān)重構(gòu)
          第五單元  函數(shù)相關(guān)重構(gòu)
           內(nèi)容一:函數(shù)的重構(gòu)
          1.函數(shù)的重構(gòu)
          2.巨型函數(shù)的種類
          a)項(xiàng)目列表式巨型方法
          b)鋸齒狀巨型方法
          3.分解函數(shù)
          4.助手方法提取
          5.利用自動(dòng)重構(gòu)對(duì)付巨型方法
          6.利用手工重構(gòu)對(duì)付巨型方法
          7.引入感知變量
          8.函數(shù)依賴收集
          9.分解助手方法和方法對(duì)象
          10.通過(guò)案例介紹長(zhǎng)函數(shù)的重構(gòu)最佳實(shí)踐
          第六單元  重構(gòu)策略和技巧
           內(nèi)容一: Refactoring Strategies & Tactics
          1.Refactoring Strategy: Piecemeal Refactoring
          2.Refactoring Strategy:Divide & Conquer
          3.Refactoring Strategy:Narrowed Change
          4.Refactoring Strategy:Parallel Change
          5.Refactoring Strategy:Unified Methods
          6.Refactoring Strategy:Evolved Target
          7.Refactoring Strategy: Graceful Retreat
          8.Refactoring Strategy: Gradual Cutover
          9.Refactoring Strategy: Preparing for Change 
          10.Refactoring Tactic: Rejected Parameter
          11.Refactoring Tactic: Caller Swap
          12.Refactoring Tactic:Encapsulated Dependency
          第四部分  重構(gòu)實(shí)戰(zhàn)2一類重構(gòu)
          第七單元  類相關(guān)重構(gòu)
           內(nèi)容一:重構(gòu)案例—該案例重點(diǎn)巨大類的重構(gòu)
          1. 重構(gòu)大類
          1. 對(duì)象的職責(zé)重構(gòu)
          2. 職責(zé)的識(shí)別
          a)方法分組
          b)觀察隱藏方法
          c)尋找可以更改的原因
          d)尋找內(nèi)部關(guān)系
          e)尋找主要職責(zé)
          f)接口分離—接口隔離原則
          3.提取類和接口
          4.通過(guò)案例介紹如何重構(gòu)巨大的類
          第五部分  重構(gòu)實(shí)戰(zhàn)3一重構(gòu)到模式
          第八單元  重構(gòu)到模式
          內(nèi)容一:案例---重構(gòu)設(shè)計(jì)方案引入設(shè)計(jì)模式
          1.通過(guò)項(xiàng)目分析重構(gòu)到模式的手段
          2.構(gòu)造Template Method
          3.以Composite取代一/多之分
          4.引入Null Object
          5.用Adapter統(tǒng)一接口
          6.用Fatory Method引入多態(tài)創(chuàng)建
          5.通過(guò)案例介紹如何重構(gòu)原始設(shè)計(jì)方案,演示如何通過(guò)重構(gòu)導(dǎo)入設(shè)計(jì)模式
          第六部分  重構(gòu)實(shí)戰(zhàn)4一模塊/組件重構(gòu)
          第九單元模塊重構(gòu)
          內(nèi)容一:模塊重構(gòu)
          1.優(yōu)良的系統(tǒng)設(shè)計(jì)意味著我們把系統(tǒng)分割成了一個(gè)個(gè)可單獨(dú)部署的組件,單獨(dú)部署意味著如果更改了一個(gè)組件,我們也不需要重新部署其他組件。
          2.組件和包壞味道
          3.模塊之間解耦
          4.組件的內(nèi)聚性實(shí)踐
          5.組件的依賴性實(shí)踐
          6.企業(yè)應(yīng)用系統(tǒng)組件設(shè)計(jì)最佳實(shí)踐
          7.分析某項(xiàng)目,演示模塊重構(gòu),如何在大型應(yīng)用系統(tǒng)進(jìn)行模塊重構(gòu)
          第七部分  重構(gòu)實(shí)戰(zhàn)5一數(shù)據(jù)庫(kù)重構(gòu)
          第十單元  架構(gòu)重構(gòu)
           內(nèi)容一: 數(shù)據(jù)重構(gòu)過(guò)程
          1.驗(yàn)證數(shù)據(jù)庫(kù)重構(gòu)是否合適
          2.選擇最合適的數(shù)據(jù)庫(kù)重構(gòu)
          3.讓原來(lái)的數(shù)據(jù)庫(kù)schema過(guò)時(shí)
          4.前測(cè)試、中測(cè)試和后測(cè)試
          5.修改數(shù)據(jù)庫(kù)schema
          6.遷移源數(shù)據(jù)
          7.重構(gòu)外部訪問(wèn)程序
          8.運(yùn)行回歸測(cè)試
          9.對(duì)工作進(jìn)行版本控制
          10.結(jié)束此次重構(gòu)
          11.分析多年遺留的復(fù)雜項(xiàng)目,演示如何重構(gòu)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)重構(gòu)的一般步驟,和普通的應(yīng)用程序代碼的重構(gòu)的不同點(diǎn)。
          內(nèi)容二: 數(shù)據(jù)庫(kù)重構(gòu)策略
          1.小的變更更容易進(jìn)行
          2.唯一地標(biāo)識(shí)每一次重構(gòu)
          3.通過(guò)許多小變更實(shí)現(xiàn)一次大變更
          4.建立數(shù)據(jù)庫(kù)配置表
          5.觸發(fā)器優(yōu)于視圖或批量同步
          6.選擇一個(gè)足夠長(zhǎng)的轉(zhuǎn)換期
          7.簡(jiǎn)化數(shù)據(jù)庫(kù)變更控制委員會(huì)策略
          8.簡(jiǎn)化與其他團(tuán)隊(duì)的協(xié)商
          9. 封裝對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)
          10.能夠容易地建立數(shù)據(jù)庫(kù)環(huán)境
          11.不要復(fù)制sql
          12.將數(shù)據(jù)庫(kù)資產(chǎn)置于變更控制之下
          12.通過(guò)多個(gè)大型項(xiàng)目的數(shù)據(jù)庫(kù)重構(gòu)策略, 分析在不同的數(shù)據(jù)庫(kù)壞味道下,使用不同的重構(gòu)策略
          第八部分  安全重構(gòu)--構(gòu)筑重構(gòu)測(cè)試體系
          第十一單元單元測(cè)試-構(gòu)筑測(cè)試體系
          內(nèi)容一:理解單元測(cè)試
          1.理解單元測(cè)試第一個(gè)單元測(cè)試
          2.單元測(cè)試框架提供了什么功能
          3.好的測(cè)試是什么樣子的
          4.為什么要寫(xiě)單元測(cè)試,為什么不寫(xiě)單元測(cè)試
          5.為什么要寫(xiě)"好"的單元測(cè)試
          6.分析真實(shí)項(xiàng)目,如何做單元測(cè)試,已經(jīng)相關(guān)問(wèn)題
          內(nèi)容二:構(gòu)筑測(cè)試體系
          1.單元測(cè)試中的壞味道
          2.讓測(cè)試容易被看懂的模式
          3.讓測(cè)試容易維護(hù)的模式
          4.讓測(cè)試被信得過(guò)的模式
          5.重構(gòu)單元測(cè)試,改進(jìn)代碼設(shè)計(jì)
          6.如何在集成與單元、黑盒或白盒、Mock和非Mock之間做選擇?
          7.結(jié)合多個(gè)案例項(xiàng)目進(jìn)行分析,分析什么是好的單元測(cè)試
          第十二單元  重構(gòu)管理
           內(nèi)容一:安全重構(gòu)
          1. 重構(gòu)的恐懼心里
          2. 重構(gòu)勇氣
          3. 安全重構(gòu)和祈禱式重構(gòu)
          4. 安全重構(gòu)保證
          a) 依賴編輯器
          b) 簽名保持
          c) 單一目標(biāo)
          d) 依賴編譯器
          e) 個(gè)人的能力
          f) 代碼審查
          g) 單元測(cè)試
          h) 驗(yàn)收測(cè)試
          i) 人工測(cè)試
          5. 通過(guò)案例如何保證重構(gòu)的正確性
          演講嘉賓:劉捷- 曾任職BEA(中國(guó))資深軟件架構(gòu)師
          曾任職BEA(中國(guó))資深軟件架構(gòu)師,十余年的企業(yè)軟件架構(gòu)、開(kāi)發(fā)和管理經(jīng)驗(yàn), 側(cè)重于企業(yè)應(yīng)用軟件架構(gòu)設(shè)計(jì).主要負(fù)責(zé)客戶大型項(xiàng)目的架構(gòu)設(shè)計(jì)和研發(fā)。作為技術(shù)專家保證項(xiàng)目的成功實(shí)施,運(yùn)行和維護(hù)。參加過(guò)全國(guó)/全省多個(gè)大型的計(jì)算機(jī)應(yīng)用項(xiàng)目,擅長(zhǎng)的領(lǐng)域包括電信,金融、稅務(wù),大型互聯(lián)網(wǎng)web2.0應(yīng)用等。此前就職于IBM,任軟件架構(gòu)師。在此之前曾任日本東京一家軟件企業(yè)的資深技術(shù)顧問(wèn)。

          上一篇:微創(chuàng)新?小米 爆品戰(zhàn)略 下一篇:柔性生產(chǎn)計(jì)劃與精益庫(kù)存控制

          在線報(bào)名

          課程名稱: *
          公司名稱(發(fā)票抬頭): *
          聯(lián)系人姓名: * 電話: * 職務(wù) E-mail: 手機(jī):
          參加學(xué)員信息
          姓名: 電話: 職務(wù): E-mail: 手機(jī):
          姓名: 電話: 職務(wù): E-mail: 手機(jī):
          姓名: 電話: 職務(wù): E-mail: 手機(jī):
          付款方式 電匯/轉(zhuǎn)賬 現(xiàn)金(在所選項(xiàng)上打“·”號(hào)) 付款總金額

          提交

          上海創(chuàng)卓商務(wù)咨詢有限公司 版權(quán)所有 電話:021-36338510 /36539869 傳真:021-36338510 郵箱:[email protected] 網(wǎng)址:www.hw6888.com
          Copyright 2004 All right reserved() 滬ICP備11020370號(hào)

            <del id="lmbdk"><dl id="lmbdk"></dl></del>
            
            
              <th id="lmbdk"></th>
              <strong id="lmbdk"><form id="lmbdk"></form></strong>

                1. <th id="lmbdk"><progress id="lmbdk"></progress></th>
                  操大逼片 | 天堂免费在线视频 | 日韩欧美三级片在线观看 | 五月婷婷大香蕉 | 天天射夜拍拍 |