會議詳情 菜單
2019重構復雜遺留系統的最佳實踐培訓班(12月北京)

2019重構復雜遺留系統的最佳實踐培訓班(12月北京)

2019-12-19 09:00 至 2019-12-20 18:00

北京   None

火龍果軟件工程技術中心   

報名截止

推薦會議:GIEC2020第七屆全球互聯網經濟大會

發票類型:增值稅普通發票 增值稅專用發票

-會議介紹-

復雜遺留系統,往往是10多年的產品,隨著不同產品的推出、不同客戶,不同版本的發布,需要維護的遺留代碼越來越多,重構也就在所難免. 迄今為止所有的軟件系統都會變成遺留系統,并且都遭遇了緩慢,不可抗拒的腐化,因此軟件開發人員不得不面對既有系統的混亂代碼.而本課程正是告訴你如何重構既有的遺留系統, 如何重構代碼,重構設計,重構架構.

本課程注重實戰,采用案例貫穿方式完成實踐,收集了大量的真實案例,針對項目過程中技術人員常犯的錯誤進行了匯總,研討,并最終形成培訓教程。本次培訓從程序員的編程思維開始講解,通過大量的真實案例,涵蓋了代碼重構,設計重構,架構重構3個層次,詳細地介紹了重構需要注意的要點以及難點。

你需要該課程嗎?

你們是否已經存在如下現象,如果有,請參加我們課程,我們給你最佳實踐:

  • 遺留系統的文檔已經部分丟失和殘缺,甚至沒有
  • 研發團隊對系統的認識非常有限.包括對需求,架構,設計和代碼
  • 每當修改系統Bug時,莫名其妙的新bug就會屢次出現
  • 增加新功能十分困難,即使簡單新特性都需要很久時間才能完成
  • 沒有工程師愿意維護老代碼,甚至為了逃離維護工作,采取離職
  • 當前系統代碼,關系混亂且難以維護
  • 誰應該負責重構,如何開始,哪些需要重構
  • 如何保證安全重構,如何保證重構的正確性
  • 大型項目如何實踐重構,我們系統都已經很多版本,很多客戶

培訓對象 各類軟件研發中心的軟件設計師、架構師, 項目經理,技術總監,質量部門經理。對于重構技術懷有疑問和困惑,需要梳理解答的團隊和個人,效果最佳。

學員基礎:了解Java/C#或者C++任一面向對象語言, 具有面向對象基本概念,熟悉基本設計模式

授課方式: 定制課程 + 案例講解 + 小組討論,60%案例講解,40%實踐演練

培訓內容:2天

第一部分 重構核心思想
第一單元 重構核心思想

內容一:軟件業者的反思: 軟件代碼的為什么會變爛
1. 軟件可維護性(為什么必須重視軟件的可維護性)
2. 代碼質量概述
3. 破窗效應
4. 技術債務
5. 對代碼的重新認識---代碼就是設計
6. 案例演示1-通過演示國內某電信項目,隨著客戶需求的變化,導致軟件結構混亂,大家反思,為什么? 你認為代碼變爛的原因?

內容二:重構思想與誤區
1. 重構概述
2. 何時重構
3. 重構的誤區
4. 重構是持續進行的,不要先編寫爛代碼,再抽出重構
5. 如何發現哪些地方需要重構
6. 如何保證重構的正確
7. 如何測試重構
8. 通過一個小案例演示重構的基本思想(什么時間重構,如何發現重構點,如何保證重構的正確性,最后如何驗收)

內容三:案例—通過實際項目演示重構
1. 介紹項目需求情況,進行設計
2. 閱讀代碼指出代碼壞癥狀
3. 通過重構逐步改善代碼質量
4. 通過該案例演示重構的過程,我們遇到的難處,如何解決?

第二部分 重構最佳實踐---實踐者的思考
重構實踐

內容一:重構關鍵—發現代碼的壞味道
1. 代碼壞味道概述
2. 代碼壞味道的分類
3. 識別代碼壞味道,是重構的最重要一步
4. 所謂重構,無非就是嗅到壞味道,然后,一小步一小步的改了它。問題是,很多人對壞味道的容忍度讓他們嗅不到壞味道,
5. 案例分析—通過真實項目的代碼,分析代碼壞味道

內容二:重構手段和IDE重構工具
1. 重構手段概述
2. 簡要演示重構的手段
3. 使用IDE重構工具進行重構
4. 重構工具的使用標準
5. 重構工具的使用心得
6. 通過案例演示如何通過重構工具完成重構

第三部分 重構案例- 某電信項目重構實踐
重構巨型大函數

該案例主要演示如何重構實際項目代碼之中的巨大方法

內容一:重構案例—該案例重點 巨型函數
1. 函數的重構
2. 巨型函數的種類
&nbspa) 項目列表式巨型方法
b) 鋸齒狀巨型方法
3. 利用自動重構對付巨型方法
4. 利用手工重構對付巨型方法
5. 引入感知變量
6. 函數依賴收集
7. 分解助手方法和方法對象
8. 通過案例介紹函數的重構最佳實踐

內容二:重構案例—該案例重點 分解函數和函數參數重構
1. 分解函數
2. 助手方法提取
3. 函數參數的重構
4. 函數參數的相關壞味道
5. 流程函數和功能函數的調用關系
6. 通過案例介紹如何代碼之中的分解函數和函數之間參數的重構

內容三:重構案例—該案例重點 復雜條件表達式重構
1. 復雜條件表達式重構
2. IF/Else深層嵌套語句的重構
3. Switch語句的重構
4. 重構表驅動
5. 通過案例介紹如何代碼之中的復雜條件表達式的重構

內容四:重構案例—該案例重點學習代碼重復
1. 代碼重復分類以及重構手段
2. 強加的重復(imposed duplication):開發者覺得他們無可選擇-環境似乎要求重復
3. 無耐心的重復(impatient duplication):開發者偷懶,他們重復,因為那樣似乎更容易.
4. 無意的重復(inadvertent duplication):開發者沒有意識到他們在重復信息
5. 開發者之間的重復(interdeveloper duplication):同一團隊(或不同團隊)的幾個人重復了同樣的信息.
6. 通過案例介紹代碼的重復,以及如何重構

第四部分 重構案例- 某電力項目重構實踐
類重構

該案例演示大類的重構實踐

內容一:重構案例—該案例重點 巨大類的重構
1. 重構大類
1. 對象的職責
2. 單一職責原則與類的重構
3. 職責的識別
a) 方法分組
b) 觀察隱藏方法
c) 尋找可以更改的原因
d) 尋找內部關系
e) 尋找主要職責
f) 接口分離—接口隔離原則
4. 提取類和接口
5. 通過案例介紹如何重構巨大的類

第五部分 重構案例- 稅務/社保項目重構實踐
重構模式

通過多個案例分析如果打通重構與模式任督二脈

內容一:重構到模式
1. 軟件設計的基本原則
2. 設計模式概述
3. 設計模式的本質論
4. 設計模式如何適應變化和封裝
5. 重構到模式的思路

內容二:案例---重點介紹重構基本類型依賴和對應模式
1. 通過案例學習以下重構到模式手段
2. 以State取代狀態改變條件語句
3. 以Strategy取代條件邏輯
4. 以Composite取代隱含樹
5. 以Interpreter取代隱式語言
6. 轉移裝飾功能到Decorator
7. 用Builder封裝Composite
8. 重點學習案例的重構到模式的過程

內容三:案例---重點介紹重構代碼重復和對應模式
1. 通過案例學習以下重構到模式手段
2. 構造Template Method
3. 以Composite取代一/多之分
4. 引入Null Object
5. 用Adapter統一接口
6. 用Fatory Method引入多態創建
7. 重點學習案例的重構到模式的過程

內容四:案例---重點介紹重構代碼過長/過大的類/方法和對應模式
1. 轉移聚集操作到Vistor
2. 以Strategy取代條件邏輯
3. 以Command取代條件調度程序
4. 轉移聚集操作到Collecting Parameter
5. 重點學習案例的重構到模式的過程

內容五:案例---重點介紹條件邏輯過度復雜和對應模式
1. 以Strategy取代條件邏輯
2. 以State取代狀態改變條件語句
3. 轉移裝飾功能到Decorator
4. 引入Null Object
5. 以Command替換條件調度程序
6. 轉移聚集操作到Visitor
重點學習案例的重構到模式的過程

第六部分 重構案例- 某金融項目設計重構實踐
設計和模塊重構

通過多個案例介紹設計重構,以及組件解耦,重構

內容一:設計重構
1. 重構與設計的思想---根據代碼壞味道改善設計
2. 軟件需求不可預測性----設計師不可能進行預測式設計
3. 軟件設計的重構
4. 「重構」和設計彼此互補
5. 「事先設計」("Big Up Front Design)
6. 演進式設計 (evolutionary design)
7.  Growing an Architecture 演化架構
8. 分析某項目,如何設計重構,給我們哪些啟示,我們可以學習到什么

內容二:組件/包/模塊重構
1. 優良的系統設計意味著我們把系統分割成了一個個可單獨部署的組件,單獨部署意味著如果更改了一個組件,我們也不需要重新部署其他組件。
2. 組件和包 壞味道
3. 模塊之間解耦
4. 組件的內聚性實踐
5. 組件的依賴性實踐
6. 企業應用系統組件設計最佳實踐
7. 分析某項目,演示重構,給我們哪些啟示,我們可以學習到什么

第七部分 重構案例- 互聯網和電信項目架構重構實戰
架構重構

通過多個實際案例,演示如何進行架構重構

內容一: 架構重構
1. 軟件架構概述
2. 遺留系統的軟件架構恢復
3. 軟件架構的重構時機
4. 軟件架構的重構步驟
5. 架構壞味道
6. 架構重構策略

內容二:案例分析—某互聯網項目架構重構(根據時間調整)
1. 項目背景以及相關需求
2. 軟件架構的演進與重構過程
3. 質量屬性對軟件架構的驅動
4. 架構的可擴展性架構
5. 緩存技術在架構之中的應用
6. Web層的架構策略
7. 中間層的架構和集群策略
8. 大型并發系統Session的復制和容錯架構策略
9. 數據的架構
10. 該案例主要演示軟件架構的重構策略

內容三:案例分析—某電信項目架構重構
1. 介紹項目需求情況,進行設計
2. 通過重構逐步實現設計的可維護, 可重用
3. 應用管道與過濾器/元數據/微內核等架構模式
4. 應用AOP架構思想
5. 應用設計模式(Command/ Observer/Proxy/Chain of Responsibility )
6. 通過案例學習架構的重構策略和步驟

第八部分 重構管理與安全重構
重構管理

如何進行安全重構, 消除恐懼心里。 如何使重構持續化,使開發者必須重構

內容一:安全重構
1. 重構的恐懼心里
2. 重構勇氣
3. 安全重構和祈禱式重構
4. 安全重構保證
a) 依賴編輯器
b) 簽名保持
c) 單一目標
d) 依賴編譯器
e) 個人的能力
f) 代碼審查
g) 單元測試
h) 驗收測試
i) 人工測試
5. 通過案例如何保證重構的正確性

內容二:重構管理
1. 代碼管理
2. 冰山理論
3. 如何爭取業務人員和管理者的支持
4. 持續重構與代碼分析工具
5. 持續集成與重構
6. 重構日常習慣
6. 通過案例分析如何保持持續重構,以及如何向領導和業務人員說服重構

-主辦方介紹-

火龍果軟件工程技術中心 火龍果軟件工程技術中心

火龍果軟件工程技術中心是UML軟件工程組織下屬的一家軟件工程綜合技術服務公司,為軟件行業提供技術研發、技術咨詢、技術培訓和產品支持服務 培訓: 為軟件行業提供開發過程中需要的各種專門性知識培訓、技術培訓,包括軟件工程的各種理論知識(例如分析設計)、具體應用類型的理論知識(例如關系數據庫),軟件開發過程中的各種技術(例如J2EE應用環境)。客戶包括:摩托羅拉中國電子有限公司、諾基亞中國技術中心、北大方正、清華同方、一汽大眾、UT斯達康等等,客戶對我們提供的優質服務給與了高度的贊譽。建立了良好的合作關系。為多家知名公司提供長期定制技術服務。同時和十多家國內著名培訓機構有廣泛的合作關系,為培訓合作伙伴提供技術和師資的支持。

Allen.Liu
曾任某國際研發中心技術負責人,還在編碼的架構師。近幾年一直從事重構相關的工作。

-會議門票-

票種名稱 價格 原價 票價說明
會務費 ¥5700
會議標簽:

復雜遺留系統 技術開發 編程 軟件重構

溫馨提示
酒店與住宿: 異地參會客戶請注意,為防止會議臨時變動,建議您先與活動家客服確認參會信息,再安排出行與住宿事宜。
退款規則: 活動各項資源需提前采購,購票后不支持退款,可以換人參加。

相關會議

分享到

QQ好友 QQ空間 微博 ×
欧美区一区二区视频在线-国产欧美一区二区三区