培訓時間:

軟件設計模式與軟件重構實戰(zhàn)訓練營

  時間地點:
2025年06月23-26日 武漢
2025年09月25-28日 成都

  培訓費用:8800

  贈送積分:8800

    服務電話:010-82593357

軟件設計模式與軟件重構實戰(zhàn)訓練營詳細內容

軟件設計模式與軟件重構實戰(zhàn)訓練營

培訓方式

專家面授      在線直播      精品錄播

課程信息

課程時長

4天*6小時

面授+直播

+視頻回放

面授

地點時間

上海

4月20-23日

武漢

6月23-26日

成都

9月25-28日

直播時間

面授同步直播

增值服務

提供視頻回放免費學習一年

學習平臺

PC端:https://it.zpedu.com/     移動端APP:IT云課

培訓背景

無數軟件企業(yè)及其研發(fā)團隊都面臨著,大量初級程序開發(fā)人員低質量軟件開發(fā)帶來的嚴重問題,即使那些工作多年的高級程序員也存在著對提高軟件設計質量認識不深的問題。正是由于以上的問題,造成許多公司對運行了多年的核心業(yè)務,運行維護成本越來越高,卻不能更換、一直維護下去的惡性循環(huán)。如何通過培訓,切實有效地提高員工設計開發(fā)水平,從而有效地改善軟件設計質量,成為越來越多的軟件企業(yè)迫切需要解決的問題。

課程簡介

中培偉業(yè)特邀相關領域權威專家精心打造了“軟件設計模式與軟件重構實戰(zhàn)訓練營”課程,并定期開展公開課。本課程注重實戰(zhàn),采用案例貫穿的方式,收集了大量的真實案例,針對項目過程中技術人員常犯的錯誤進行了匯總與研討,并最終形成培訓教程。通過大量的真實案例,詳細地介紹了軟件設計過程需要注意的要點以及難點,這些知識都是講師十幾年經驗的總結。本次課程1/3時間講解核心思想,1/3時間動手重構實踐,1/3點評分析總結。


培訓價值

ü 提高軟件開發(fā)效率

在編碼之前制定設計方案,避免在開發(fā)過程中頻繁修改代碼,提高軟件開發(fā)效率。

ü 提高軟件綜合質量

編碼之前進行全面的需求分析和規(guī)劃,從而設計出更加優(yōu)秀的軟件架構和模塊設計,提高軟件的質量和可靠性。

ü 方便軟件維護和升級

設計出易于維護和升級的軟件系統(tǒng),減少維護成本和升級難度。

ü 減少軟件開發(fā)成本

在開發(fā)過程中發(fā)現問題和缺陷,避免在后期進行大量的修改和調整,從而減少軟件開發(fā)成本。

培訓對象

初中高級工程師、企業(yè)架構師、軟件設計師等;

各類軟件研發(fā)中心的軟件設計師、架構師、項目經理、技術總監(jiān)、質量部門經理。

對于重構技術懷有疑問和困惑,需要梳理解答的團隊和個人,效果最佳。


代碼重構

設計重構

軟件腐爛監(jiān)控

重構管理

程序員

必須精通

需要了解

需要了解

需要了解

設計師

必須精通

必須精通

需要了解

需要了解

架構師

必須精通

必須精通

必須精通

必須精通

數據庫工程師

需要了解

需要了解

/

/

質量管理

/

/

必須精通

必須精通

管理者

/

/

需要監(jiān)控

需要了解

 


中培優(yōu)勢

老牌機構

19年企業(yè)IT培訓經驗,30+國內外資質授權,助力130萬+IT人成長

師資雄厚

認證講師資質,教學經驗豐富,真實項目實戰(zhàn),突破瓶頸快提升

通關無憂

5W+精準題庫,官方教材、自研講義、模擬考試等多重通關保障

班型多樣

面授、直播、精品錄播、定制企業(yè)內訓,全國循環(huán)開班,隨報隨學

平臺專業(yè)

支持PC、APP端使用,滿足多樣化學習需求,更靈活更便捷

服務保障

社群共學、促學、專家答疑,報名、考試、取證、續(xù)證一站式服務

課程大綱

1-2天:軟件設計模式專題

第一部分高質量軟件設計

第一章

什么是高質量的軟件設計

情景?。很浖O計焦慮癥

1. 上次的設計太糟糕了,痛下決心以后要好好設計

2. 再次進行軟件設計時卻不知道該怎樣設計

1) 思考了很多,不知如何下手

2) 需求一變更,重新回到了糟糕的狀態(tài)

探討:如何進行高質量的軟件設計

什么是高質量的軟件設計

1. 軟件的質量保證:內部質量與外部質量

2. 高質量軟件設計的標準:易讀、易于維護、易于變更

第二章

軟件設計原則

易于閱讀:

1. 規(guī)范代碼、編寫注釋與表明動機

案例:代碼編寫范例與簡便易行的方法

2. 領域驅動設計

易于維護與變更

1. 互聯(lián)網+帶來的挑戰(zhàn)

1) 系統(tǒng)需要不斷地技術升級與改造

2) 傳統(tǒng)行業(yè)必須向互聯(lián)網轉型

3) 但技術變革不是換零件那么簡單

4) 剖析應對技術變革的方案

2. 案例講解軟件設計原則

1) 低耦合

a. 依賴反轉原則(DIP)

案例:購票業(yè)務類與數據訪問類

b. 開放-封閉原則(OCP)

案例:需求變更與可擴展點設計

案例:Square/Circle的解決方案

c. 里氏替換原則(LSP)

案例:Rectangle/Square的問題

案例:查詢參數傳遞類的問題

2) 高內聚

案例:評審系統(tǒng)的設計

a. 單一職責原則(SRP)

案例:財務憑證變更帶來的問題

案例:超級大函數與大對象的難題

案例:MySQL讀寫分離的改造過程

b. 信息專家模式

c. 不要重復自己原則(DRY)

典型的代碼重復案例

探討代碼復用的難題

探討軟件設計模式:

1. 設計模式的由來

2. 設計模式的發(fā)展

3. 設計模式對高質量軟件設計的作用

第二部分軟件設計模式

第三章

適配器模式

什么是適配器模式

1. 軟件設計中外部接口的難題

2. 第三方框架帶來的設計難題

3. 適配器模式及其概念

適配器模式的應用

1. 適配器模式解決第三方框架帶來的難題

案例:Hibernate適配器的設計

2. 適配器模式解決外部接口的設計難題

案例:第三方支付接口的設計

案例:財務數據接口的設計

第四章

策略模式

什么是策略模式

1. 工資發(fā)放功能遇到的難題

1) 工資發(fā)放功能最初的設計及其問題

2) 對問題的分析過程及其新的設計思路

2. 策略模式及其概念

策略模式的應用

1. 案例:工資發(fā)放功能設計改進的過程

1) 工資發(fā)放功能的Java實現

2) 工資發(fā)放功能的C++實現

2. 案例:數據導出功能的設計實現

1) 深入理解開放-封閉原則

2) 數據導出功能的變更與改進過程

3. 案例:財務憑證生成功能的設計過程

1) 財務憑證生成功能的初始需求與設計

2) 財務憑證生成功能的擴展與分析過程

3) 財務憑證生成功能的最終設計

4) 深入理解單一職責原則

5) 學習“兩頂帽子”的設計方式

練習:財務憑證生成功能的設計與實現

第五章

工廠模式

探討軟件設計中遇到的難題

1. 依賴反轉原則的設計難題

2. 開放-封閉原則的設計難題

3. 探討工廠模式的本質

簡單工廠模式

1. 簡單工廠模式的C++實現

2. 基于配置的簡單工廠模式

3. 剖析簡單工廠如何實現依賴反轉原則

案例:剖析Spring的beanFactory

4. 解讀工廠模式對設計的重大意義

5. 講解如何創(chuàng)建一個工廠

1) 創(chuàng)建工廠的步驟與關鍵點

2) 利用Spring框架簡化工廠類的設計

案例:數據導出功能的工廠實現

工廠方法模式

1. 工廠方法模式的概念

2. 工廠方法模式的應用

案例:SAX框架的工廠類設計

抽象工廠模式

1. 抽象工廠模式的概念

2. 抽象工廠模式的實現

案例:標簽庫的設計改進過程

1) 最初的標簽庫設計

2) 運用簡單工廠的標簽庫設計

3) 運用工廠方法的標簽庫設計

4) 運用抽象工廠的標簽庫設計

5) 最終基于配置的標簽庫設計

第六章

單例模式

什么是單例模式

1. 設計工廠類面臨的問題

2. 單例模式及其概念

3. 如何實現單例模式

單例模式的應用

1. 單例模式帶來的設計變革

1) 充血模型vs.貧血模型

2) 探討單例模式與性能問題

2. 單例模式改變了很多軟件的設計

第七章

原型模式

什么是原型模式

1. 工廠類在提供產品時遇到的設計問題

2. 原型模式及其概念

原型模式的設計實現

案例:函數調用的無副作用問題

案例:JavsScript中的原型模式

第八章

模板方法模式

什么是模板方法模式

1. 煮咖啡給我們的啟示

2. 設計工廠類的新思路

3. 模板方法模式及其概念

模板方法模式的作用與技巧

案例:一個工廠模板的設計與實現

深入理解不要重復自己原則

1. 重復代碼帶來的嚴重后果

2. 散彈式修改及其解決思路

3. 探討實現代碼復用的難題

4. 代碼復用在不同場合采用的方法

5. 模板方法模式在代碼復用中的作用

第九章

裝飾者模式

什么是裝飾者模式

1. 業(yè)務量增長帶來的多數據源問題

2. 運用裝飾者模式巧妙解決多數據源問題

3. 裝飾者模式及其概念

裝飾者模式的應用

案例:多數據源的設計實現

1. 多數據源問題的分析設計過程

2. 多數據源的設計與實現

案例:商城收銀系統(tǒng)的設計變更過程

1. 商城收銀系統(tǒng)期初的設計

2. 混合策略的設計與實現

3. 多層裝飾者的設計與實現

重新理解里氏替換原則

1. 透明的功能擴展

2. 里氏替換原則

練習:商場收銀系統(tǒng)的2種設計與實現

第十章

橋接模式

什么是橋接模式

1. 對象繼承的泛濫

2. 橋接模式及其概念

橋接模式的應用

案例:員工管理與工資發(fā)放的設計

1. 員工管理與工資發(fā)放帶來的繼承泛濫問題

2. 采用橋接模式的設計與實現

案例:查詢支持類的設計

1. 查詢支持類遭遇的繼承泛濫問題

2. 查詢支持類的解決方案

3. 單例模式下查詢支持類的設計

深入體會單一職責原則

第十一章

享元模式

什么是享元模式

1. Hibernate是怎樣訪問數據的

2. 享元模式及其概念

享元模式的應用

案例:數據緩存的設計實現

案例:享元模式在大數據中的應用

第十二章

其它設計模式

觀察者模式:JobHunter的情景劇

代理模式:老板與秘書的差異

命令模式:像工作流一樣處理業(yè)務

外觀模式:超級家庭影院的煩惱

構建器模式:SQL Builder的設計

組合模式:如何構建一棵樹

中介者模式:QQ在溝通中的作用

迭代器模式:如何順序訪問一個集合

3-4天:軟件重構實戰(zhàn)專題

第一部分為什么軟件需要及時重構

第一單元

剖析軟件質量不斷下降的根源

質量不斷下降的表現:

1. 程序代碼越來越亂

2. 軟件維護成本越來越高

3. 軟件變更越來越困難

4. 無法進行新技術的改造

以往采取的措施:

1. 頭痛醫(yī)頭,腳痛醫(yī)腳

2. 拋棄掉重新編寫

3. 因擔心未來變化而做的過度設計

帶來的問題

1. 團隊成員越來越多但效率卻越來越低

2. 測試變得越來越困難而任務繁重

3. 軟件系統(tǒng)越來越笨重而不適應未來變化

分析與反思

案例分析:一個遺留系統(tǒng)的演化過程

1. 起初的設計

2. 隨后的變更

3. 質量不斷下降的過程

軟件質量下降的根源:

1. 軟件總是因變更而變得越來越復雜

2. 軟件結構已經不再適應復雜的軟件需求

3. 必須要調整軟件結構以適應新的軟件需求

軟件是因需求變更而質量下降嗎?

案例分析:推演軟件變更的設計過程

應對軟件變更的最佳方式:兩頂帽子

1. 重構原有代碼以適應新的需求

2. 實現新的需求

案例:演示兩頂帽子的設計過程

案例:財務憑證生成程序的設計過程

第二單元

高質量的軟件設計過程

案例講解軟件設計原則

1. 低耦合

1) 依賴反轉原則(DIP)

一、 案例:購票業(yè)務類與數據訪問類

2) 開放-封閉原則(OCP)

二、 案例:需求變更與可擴展點設計

三、 案例:Square/Circle的解決方案

3) 里氏替換原則(LSP)

四、 案例:Rectangle/Square的問題

五、 案例:查詢參數傳遞類的問題

2. 高內聚

1) 單一職責原則(SRP)

六、 案例:財務憑證變更帶來的問題

七、 案例:超級大函數與大對象的難題

八、 案例:MySQL讀寫分離的改造過程

2) 信息專家模式

3) 不要重復自己原則(DRY)

4) 典型的代碼重復案例

5) 探討代碼復用的難題

以往軟件設計的過程:

1. 演示以往軟件設計的過程

2. 剖析以往軟件設計的問題與風險

小步快跑模式的開發(fā)過程:

1. 用最快的速度開發(fā)一個最核心的功能

2. 讓第一個版本運行起來并可以驗證

3. 在第一個版本的基礎上不斷添加功能:

1) 每次只添加一個很簡單、很單一的功能

2) 每次以兩頂帽子的方式添加新功能

3) 運行、調試與驗證

4) 重復這個過程添加下一個功能

4. 復雜的系統(tǒng)就是由一次次正確開發(fā)的不斷積累而成

案例:演示小步快跑的開發(fā)過程

小步快跑解決的問題:

1. 復雜功能有效地解耦

2. 代碼編寫總是可測試與驗證

3. 簡化設計與思考的復雜度

4. 適時重構以避免軟件退化

案例:數據推送程序的設計過程

第二部分如何進行軟件重構

第三單元

何為重構

軟件重構的概念

1. 重構是一系列代碼的等量變換

九、 案例:一個Hello World重構過程

2. 重構的保險索:自動化測試

十、 案例:Hello World的自動化測試過程

3. 軟件修改的四種動機——重構的價值

4. 一個真實的謊言——重構的誤區(qū)

5. 重構的主要方法與技巧

案例分析:重構一個大型遺留系統(tǒng)

1. 重構第一步:分解大函數

十一、 超級大函數及其危害

十二、 案例:演示大函數產生的過程

十三、 案例:演示抽取方法操作步驟

十四、 實踐抽取方法會遇到的問題和解決方案

2. 重構第二步:拆分大對象

十五、 超級大對象及其危害

十六、 案例:演示超級大對象的產生過程

十七、 案例:演示抽取類的操作步驟

十八、 講解單一職責設計原則

十九、 案例:演示“分久必合,合久必分”的重構過程

3. 重構第三步:提高復用率

二十、 講解順序編程及其危害

二十一、 “不要重復代碼”原則

二十二、 案例:提高代碼復用的6個方法

二十三、 案例:演示新增代碼時的代碼復用過程

二十四、 用靜態(tài)檢查工具檢查重復代碼

4. 重構第四步:可擴展設計

二十五、 過度設計vs. 恰如其分的設計

二十六、 講解“開放-封閉”的設計原則

二十七、 案例:講解可擴展設計的4個方法

二十八、 案例:講解新增代碼的可擴展設計過程

5. 重構第五步:降低耦合度

二十九、 案例:講解接口、實現與工廠模式

三十、 案例:講解外部接口解耦與適配器模式

6. 重構第六步:系統(tǒng)分層

三十一、 反思軟件架構需要怎樣的分層結構

三十二、 遺留系統(tǒng)如何擁抱需求變化

三十三、 遺留系統(tǒng)如何應對技術變革

7. 重構第七步:領域驅動設計

三十四、 領域驅動設計的概念

三十五、 講解領域模型分析方法

三十六、 案例:智能溫控器分析設計過程(嵌入式+物聯(lián)網)

1) 最初的領域驅動設計過程

2) 需求變更的領域驅動設計

3) 面向物聯(lián)網的架構演進

練習:重構一個小程序并編寫測試腳本

第四單元

關于重構的討論

什么時候重構

1. 重構是一種習慣

2. 重構讓程序可讀

3. 重構,才好復用

4. 先重構,再擴展

5. 緊急任務時的重構

測試的困境

1. 重構初期的困局

2. 解耦與自動化測試

3. 建立自動化測試體系

重構的評價

1. 評價軟件質量的指標

2. 評價軟件質量的工具

講師團隊

范老師 獨立咨詢顧問| 哈工大軟件工程碩士

獨立咨詢顧問,暢銷書籍《架構真意》與《大話重構》的作者,規(guī)?;艚?/span>SPC。曾任航天信息首席架構師,哈工大軟件工程碩士,軟件架構及重構的客座講師。從事軟件研發(fā)工作近二十年,并且現在一直堅守在大型軟件架構設計一線工作。從需求分析、軟件開發(fā)到項目管理、架構設計都有豐富的從業(yè)經驗。先后參與了數十個國內大型軟件項目,涉及國家財政、軍工、稅務、醫(yī)療等領域的大數據中臺建設、風險防控與人工智能研究?;ヂ?lián)網轉型、微服務轉型及大數據轉型的實踐者與倡導者。同時,還是大型遺留系統(tǒng)改造專業(yè)戶,多次參與大型遺留系統(tǒng)改造、軟件系統(tǒng)重構等重大項目,長期關注大型業(yè)務系統(tǒng)的品質保證、防止腐化以及技術改造等困擾軟件企業(yè)的問題,在遺留系統(tǒng)優(yōu)化與改造方面有豐富的經驗。

張老師 資深IT培訓專家 | 具備豐富的軟件開發(fā)和教學經驗

碩士學歷,資深IT培訓專家,百度、阿里、騰訊等特邀講師。在多年從事的軟件開發(fā)和教學領域工作中,先后擔任過高級軟件開發(fā)工程師,系統(tǒng)架構師,高級講師。具備豐富的軟件開發(fā)經驗和教學經驗。累計授課課時超過9000學時。同時有豐富的企業(yè)內訓經驗,從開發(fā)到講師到管理,對于軟件培訓有自己獨到的見解,擅長啟蒙教育,通過啟發(fā)式的講解,讓學員具備獨立自主的思考并解決問題的能力,培養(yǎng)良好的自學方法和習慣。精通企業(yè)級的Android6.0/IOS9.2/webAPP/Cordova、Sql Server 2014、Oracle12C、MySql5.7、mariaDB10.1、VB.net、C#、WCF、Delphi、Powerbuilder、VB、SharePoint2013、Windows Server 2012、RHCE7.2(企業(yè)級應用)、NodeJS +ExpressJS+AngularJS+MongoDB+H5+jQuery等。

收費標準

8800元/人(含培訓費、平臺費、資料費、視頻回放、證書、發(fā)票等費用)。


我要報名沒有找到合適的課程,請在這里提交您的培訓需求   發(fā)布需求

上課時間
參加人數
費用
聯(lián)系人
單位名稱
部門職務
通信地址
看不清,請換一張看不清,請換一張

推薦課程

課程時間:2024年03月21--22日-------廣州(A單元)2024年04月11--12日-------廣州(B單元)2024年05月23--24日-------深圳(A單元)2024年06月27--28日-------深圳(B單元)2024年07月25--26日--------廣州(A單元)2024年08月22--23日--------廣州(B單元...

 講師:鐘永棣詳情


研發(fā)人員的考核與激勵上課時間:2025年05月19日 - 2025年05月20日 廣東深圳2025年05月22日 - 2025年05月23日 上海2025年05月26日 - 2025年05月27日 北京2025年12月22日 - 2025年12月23日 廣東深圳2025年12月25日 - 2025年12月26日 上海 講 師:曾老師參訓對象:企業(yè)CEO/總...

 講師:曾老師詳情


高效的管理溝通技巧訓練主講:田勝波老師培訓費:2600元/人(包括聽課費、講義費、午餐費、水果茶點等),食宿費用自理。備注:《中高層經理管理技能與領導力修煉》3天課程中的第二天課程目標充分認識溝通、管理溝通及其意義掌握基于管理者角色背景下的溝通能力提升方向重點掌握通過不同溝通形式、面對不同對象及其性格背景下的溝通技巧重點提升管理者在激勵下屬、塑造卓越團隊環(huán)節(jié)...

 講師:田勝波詳情


產品需求分析與需求管理【培訓課時】2天(12課時)【參加對象】企業(yè)CEO/總經理、研發(fā)總監(jiān)、研發(fā)經理/項目經理/技術經理/產品經理、產品規(guī)劃專家等【培訓費用】3980元/人,6600元2人。(含指定教材、茶點、證書,含午餐) 課程背景通過和眾多國內科技企業(yè)接觸,發(fā)現這些企業(yè)中普遍存在:1. 技術很牛,但最終倒閉的公司一大推;被技術人員嗤之以鼻的公司,反而活的...

 講師:董老師詳情


成功的產品經理——產品經理的野蠻成長【2024年度計劃時間地點安排】9月26-27北京 9月23-24上海 9月19-20深圳10月28-29杭州 11月7-8日成都曾老師(新增)12月26-27北京 12月26-27上海 12月23-24深圳【參加對象】企業(yè)CEO/總經理、研發(fā)總經理/副總、公司總工/技術總監(jiān)、公司人力資源總監(jiān)、產品線總監(jiān)、產品經理/項...

 講師:Charles曹詳情


降本增效:共創(chuàng)式OKR目標管理工作坊費用:4980/元人(學費包含:導師課酬、助教輔導費、教材、資料、課間茶歇等培訓相關費用。不包含學員的食、宿、行及其他個人費用)【課程背景】OKR讓很多企業(yè)成功實現管理升級,獲得了指數級增長,然而更多企業(yè)實踐的結果卻差強人意,與當初學習和導入時的熱情形成了鮮明的反差。OKR陷入僵局,員工怨聲載道,管理進退兩難。如果您:1、...

 講師:泰和詳情


《職場高效溝通心理學》講師/Lecturer:許老師費用/Price:¥4580元/人課程排期/Scheduling上海:2024年05月30日-31日課程概述/Overview課程背景:良好的職場溝通不但能夠有效表達工作意愿,提升溝通的效率,還有助于建立良好的人際關系網絡,發(fā)展人際關系中的支持系統(tǒng)。相反,失敗的職場溝通會導致更多的誤解、沖突、工作低效率、決...

 講師:許老師詳情


金字塔原理:邏輯思維與高效表達課程概述/Overview課程介紹《金字塔原理》課程的基本原則和思想來源于芭芭拉?明托女士經久不衰的經典暢銷商業(yè)管理書籍——《金字塔原理》。本課程通過對文章結構性特點的講解,強化學員表達與思考時的邏輯思維方式,大量的實戰(zhàn)體驗式演練,從而提高學員表達與思考的能力?;诖耍艿饺虮姸嗫鐕镜耐瞥?,也受到廣大職場人士和諸多學習者...

 講師:姜老師詳情


項目全過程管理控制與實踐Control and Practice of Project Process Management講師/Lecturer:楊老師費用/Price:¥4800元/人課程排期/Scheduling2025年03月21-22日 上海2025年04月24-25日 深圳2025年05月22-23日 北京2025年06月26-27日 廣州202...

 講師:楊老師詳情


《職場高效溝通心理學》講師/Lecturer:蔣老師費用/Price:¥4580元/人課程排期/Scheduling廣州:2024年08月08日-09日深圳:2024年11月20日-21日廣州:2024年12月25日-26日上海:2025年03月14日-15日深圳:2025年04月10日-11日北京:2025年05月15日-16日成都:2025年05月22日...

 講師:蔣老師詳情


COPYRIGT @ 2001-2018 HTTP://www.norrislakevacationhomes.com INC. ALL RIGHTS RESERVED. 管理資源網 版權所有