課程目錄:人力資源 | 招聘面試 | 檔案管理 | 績(jī)效薪酬培訓(xùn) | 合同保險(xiǎn)法 | 中高層管理培訓(xùn) | 黨務(wù)工會(huì)課程 | 行政秘書(shū) | 生產(chǎn)管理 | 工時(shí)管理 | TPM設(shè)備管理 | 安全-環(huán)境-健康 | 班組長(zhǎng) | 銷(xiāo)售、營(yíng)銷(xiāo) | 客戶服務(wù) | 微信抖音運(yùn)營(yíng) | 店長(zhǎng)培訓(xùn)班 | 電子商務(wù) | 預(yù)算成本培訓(xùn) | 內(nèi)部控制審計(jì)、紀(jì)檢監(jiān)察 | 財(cái)稅管理培訓(xùn) | 投融資管理 | 產(chǎn)品管理 | 項(xiàng)目管理 | 招投標(biāo)培訓(xùn) | 倉(cāng)儲(chǔ)管理 | 采購(gòu)物流 | 商務(wù)禮儀 | 企業(yè)流程管理 | 戰(zhàn)略管理 | 商業(yè)模式 | 監(jiān)事會(huì) | 董事會(huì) | 國(guó)外考察 | 危機(jī)管理 | 企業(yè)考察、企業(yè)文化、新聞 | 質(zhì)量品質(zhì) | 品牌管理 | 培訓(xùn)師 | 團(tuán)隊(duì)管理 | 領(lǐng)導(dǎo)力培訓(xùn) | 執(zhí)行力培訓(xùn) | 溝通、演講 | 辦公技能 | 綜合管理 | 股權(quán)激勵(lì) | 建筑工程 | 清華北大 | 跟單員 | 職業(yè)素養(yǎng) | 談判技巧 | 內(nèi)審員 | 國(guó)際貿(mào)易 | 沙盤(pán)模擬 | 國(guó)學(xué)養(yǎng)生 | 電子電路焊接 | 公文寫(xiě)作技巧 | 研發(fā)知識(shí)產(chǎn)權(quán) | 固定資產(chǎn) | 賬款回收管理 | 職業(yè)資格 | 服裝行業(yè) | 情緒管理 | 心理學(xué) | 經(jīng)銷(xiāo)商管理 | 經(jīng)營(yíng)與運(yùn)營(yíng)管理 | 從技術(shù)走向管理 | 酒店管理 | 九型人格 | 網(wǎng)絡(luò)信息、軟件工程、大數(shù)據(jù) | 醫(yī)院管理培訓(xùn) | 燃?xì)馄髽I(yè)課程 | 各大院校學(xué)生復(fù)習(xí)資料 | 其它課程 |
基本信息
咨詢電話:010-62885261 13051501222
【開(kāi)課時(shí)間】2024年11月20日-2024年11月23日
【培訓(xùn)師資】專(zhuān)家
【課程費(fèi)用】¥8,800
【培訓(xùn)地區(qū)】北京 - 北京
【人 氣 度】559次
【課件下載】點(diǎn)擊下載課程綱要Word版
課程內(nèi)容
軟件設(shè)計(jì)模式與軟件重構(gòu)實(shí)戰(zhàn)訓(xùn)練營(yíng)
培訓(xùn)班
| 培訓(xùn)服務(wù)一覽表 | ||
| 培訓(xùn)地點(diǎn) | 北京 | 北京 |
| 培訓(xùn)時(shí)間 | 6月 20-23 | 11月 |
| 培訓(xùn)方式 | · 現(xiàn)場(chǎng)面授 · 直播授課 · 錄播回放 | |
| 專(zhuān)家授課 | · 4天集中培訓(xùn)學(xué)習(xí):每天6課時(shí),實(shí)戰(zhàn)專(zhuān)家授課 · 理論梳理 · 案例分享 · 實(shí)戰(zhàn)演練 | |
| 紙質(zhì)資料 | 軟件設(shè)計(jì)模式與軟件重構(gòu)實(shí)戰(zhàn)訓(xùn)練營(yíng)培訓(xùn)講義 | |
| 社群服務(wù) | · 學(xué)員在線交流 · 專(zhuān)家在線答疑 · 班主任教學(xué)管理 | |
| 此課程可根據(jù)具體需求定制企業(yè)內(nèi)訓(xùn)解決方案。 | ||
無(wú)數(shù)軟件企業(yè)及其研發(fā)團(tuán)隊(duì)都面臨著,大量初級(jí)程序開(kāi)發(fā)人員低質(zhì)量軟件開(kāi)發(fā)帶來(lái)的嚴(yán)重問(wèn)題,即使那些工作多年的高級(jí)程序員也存在著對(duì)提高軟件設(shè)計(jì)質(zhì)量認(rèn)識(shí)不深的問(wèn)題。正是由于以上的問(wèn)題,造成許多公司對(duì)運(yùn)行了多年的核心業(yè)務(wù),運(yùn)行維護(hù)成本越來(lái)越高,卻不能更換、一直維護(hù)下去的惡性循環(huán)。如何通過(guò)培訓(xùn),切實(shí)有效地提高員工設(shè)計(jì)開(kāi)發(fā)水平,從而有效地改善軟件設(shè)計(jì)質(zhì)量,成為越來(lái)越多的軟件企業(yè)迫切需要解決的問(wèn)題。本課程不僅在講解高質(zhì)量軟件設(shè)計(jì)的理論知識(shí),更關(guān)鍵是將這些知識(shí)投放到各個(gè)真實(shí)的設(shè)計(jì)場(chǎng)景中。在這些場(chǎng)景中,我們可以看到我們要面對(duì)的設(shè)計(jì)難題,通過(guò)對(duì)設(shè)計(jì)難題的深入剖析,尋找問(wèn)題的根源,對(duì)癥下藥,從而制訂出正確的設(shè)計(jì)方案。不僅如此,本課程的案例選取了許多在需求變更中不斷變化的設(shè)計(jì)過(guò)程,從而用慢動(dòng)作的手法展現(xiàn)了,最初的需求與設(shè)計(jì)是怎樣,第一次變更的設(shè)計(jì),第二層變更的設(shè)計(jì),第三次變更的設(shè)計(jì)……這樣的過(guò)程展示了,如何在需求變更的過(guò)程中,通過(guò)每一次正確的設(shè)計(jì),不讓軟件退化,來(lái)保證高質(zhì)量的軟件設(shè)計(jì)。本課程首先深入剖析軟件質(zhì)量下降的根源,提出重構(gòu)是軟件變更中保持高質(zhì)量的必然,講解如何運(yùn)用“兩頂帽子”的方式應(yīng)對(duì)變更,拒絕腐化。站在實(shí)戰(zhàn)的角度講解高質(zhì)量軟件設(shè)計(jì)的“小步快跑”過(guò)程。接著,用真實(shí)案例講解已經(jīng)代碼腐化的遺留系統(tǒng)是如何通過(guò)“軟件重構(gòu)七步曲”,由簡(jiǎn)入深、循序漸進(jìn)地重構(gòu)一個(gè)大系統(tǒng)。課程的最后,更加深層次地講解軟件重構(gòu)面臨的難題,以及有效地解決之道。
本課程注重實(shí)戰(zhàn),采用案例貫穿的方式,收集了大量的真實(shí)案例,針對(duì)項(xiàng)目過(guò)程中技術(shù)人員常犯的錯(cuò)誤進(jìn)行了匯總與研討,并最終形成培訓(xùn)教程。通過(guò)大量的真實(shí)案例,詳細(xì)地介紹了軟件設(shè)計(jì)過(guò)程需要注意的要點(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é)員學(xué)習(xí)本課程應(yīng)具備下列基礎(chǔ)知識(shí):
l. 目前正在面臨復(fù)雜遺留系統(tǒng),必須需要維護(hù)和重構(gòu)
2. 具有面向?qū)ο蟮幕靖拍睿煜せ驹O(shè)計(jì)模式。
初中高級(jí)工程師、企業(yè)架構(gòu)師、軟件設(shè)計(jì)師等;
各類(lèi)軟件研發(fā)中心的軟件設(shè)計(jì)師、架構(gòu)師、項(xiàng)目經(jīng)理、技術(shù)總監(jiān)、質(zhì)量部門(mén)經(jīng)理。對(duì)于重構(gòu)技術(shù)懷有疑問(wèn)和困惑,需要梳理解答的團(tuán)隊(duì)和個(gè)人,效果最佳。
|
| 代碼重構(gòu) | 設(shè)計(jì)重構(gòu) | 軟件腐爛監(jiān)控 | 重構(gòu)管理 |
| 程序員 | 必須精通 | 需要了解 | 需要了解 | 需要了解 |
| 設(shè)計(jì)師 | 必須精通 | 必須精通 | 需要了解 | 需要了解 |
| 架構(gòu)師 | 必須精通 | 必須精通 | 必須精通 | 必須精通 |
| 數(shù)據(jù)庫(kù)工程師 | 需要了解 | 需要了解 | / | / |
| 質(zhì)量管理 | / | / | 必須精通 | 必須精通 |
| 管理者 | / | / | 需要監(jiān)控 | 需要了解 |
| 第1-2天 | 軟件設(shè)計(jì)模式授課內(nèi)容 |
| 第一部分 高質(zhì)量軟件設(shè)計(jì) | |
| 第一章 什么是高質(zhì)量的軟件設(shè)計(jì) | 情景劇:軟件設(shè)計(jì)焦慮癥 1. 上次的設(shè)計(jì)太糟糕了,痛下決心以后要好好設(shè)計(jì) 2. 再次進(jìn)行軟件設(shè)計(jì)時(shí)卻不知道該怎樣設(shè)計(jì) 1) 思考了很多,不知如何下手 2) 需求一變更,重新回到了糟糕的狀態(tài) 探討:如何進(jìn)行高質(zhì)量的軟件設(shè)計(jì) 什么是高質(zhì)量的軟件設(shè)計(jì) 1. 軟件的質(zhì)量保證:內(nèi)部質(zhì)量與外部質(zhì)量 2. 高質(zhì)量軟件設(shè)計(jì)的標(biāo)準(zhǔn):易讀、易于維護(hù)、易于變更 |
| 第二章 軟件設(shè)計(jì)原則 | 易于閱讀: 1. 規(guī)范代碼、編寫(xiě)注釋與表明動(dòng)機(jī) 案例:代碼編寫(xiě)范例與簡(jiǎn)便易行的方法 2. 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
易于維護(hù)與變更 1. 互聯(lián)網(wǎng)+帶來(lái)的挑戰(zhàn) 1) 系統(tǒng)需要不斷地技術(shù)升級(jí)與改造 2) 傳統(tǒng)行業(yè)必須向互聯(lián)網(wǎng)轉(zhuǎn)型 3) 但技術(shù)變革不是換零件那么簡(jiǎn)單 4) 剖析應(yīng)對(duì)技術(shù)變革的方案 2. 案例講解軟件設(shè)計(jì)原則 1) 低耦合 a. 依賴反轉(zhuǎn)原則(DIP) 案例:購(gòu)票業(yè)務(wù)類(lèi)與數(shù)據(jù)訪問(wèn)類(lèi) b. 開(kāi)放-封閉原則(OCP) 案例:需求變更與可擴(kuò)展點(diǎn)設(shè)計(jì) 案例:Square/Circle的解決方案 c. 里氏替換原則(LSP) 案例:Rectangle/Square的問(wèn)題 案例:查詢參數(shù)傳遞類(lèi)的問(wèn)題 2) 高內(nèi)聚 案例:評(píng)審系統(tǒng)的設(shè)計(jì) a. 單一職責(zé)原則(SRP) 案例:財(cái)務(wù)憑證變更帶來(lái)的問(wèn)題 案例:超級(jí)大函數(shù)與大對(duì)象的難題 案例:MySQL讀寫(xiě)分離的改造過(guò)程 b. 信息專(zhuān)家模式 c. 不要重復(fù)自己原則(DRY) 典型的代碼重復(fù)案例 探討代碼復(fù)用的難題
探討軟件設(shè)計(jì)模式: 1. 設(shè)計(jì)模式的由來(lái) 2. 設(shè)計(jì)模式的發(fā)展 3. 設(shè)計(jì)模式對(duì)高質(zhì)量軟件設(shè)計(jì)的作用 |
| 第二部分 軟件設(shè)計(jì)模式 | |
| 第三章 適配器模式 | 什么是適配器模式 1. 軟件設(shè)計(jì)中外部接口的難題 2. 第三方框架帶來(lái)的設(shè)計(jì)難題 3. 適配器模式及其概念
適配器模式的應(yīng)用 1. 適配器模式解決第三方框架帶來(lái)的難題 案例:Hibernate適配器的設(shè)計(jì) 2. 適配器模式解決外部接口的設(shè)計(jì)難題 案例:第三方支付接口的設(shè)計(jì) 案例:財(cái)務(wù)數(shù)據(jù)接口的設(shè)計(jì)
|
| 第四章 策略模式 | 什么是策略模式 1. 工資發(fā)放功能遇到的難題 1) 工資發(fā)放功能最初的設(shè)計(jì)及其問(wèn)題 2) 對(duì)問(wèn)題的分析過(guò)程及其新的設(shè)計(jì)思路 2. 策略模式及其概念
策略模式的應(yīng)用 1. 案例:工資發(fā)放功能設(shè)計(jì)改進(jìn)的過(guò)程 1) 工資發(fā)放功能的Java實(shí)現(xiàn) 2) 工資發(fā)放功能的C++實(shí)現(xiàn) 2. 案例:數(shù)據(jù)導(dǎo)出功能的設(shè)計(jì)實(shí)現(xiàn) 1) 深入理解開(kāi)放-封閉原則 2) 數(shù)據(jù)導(dǎo)出功能的變更與改進(jìn)過(guò)程 3. 案例:財(cái)務(wù)憑證生成功能的設(shè)計(jì)過(guò)程 1) 財(cái)務(wù)憑證生成功能的初始需求與設(shè)計(jì) 2) 財(cái)務(wù)憑證生成功能的擴(kuò)展與分析過(guò)程 3) 財(cái)務(wù)憑證生成功能的最終設(shè)計(jì) 4) 深入理解單一職責(zé)原則 5) 學(xué)習(xí)“兩頂帽子”的設(shè)計(jì)方式 練習(xí):財(cái)務(wù)憑證生成功能的設(shè)計(jì)與實(shí)現(xiàn) |
| 第五章 工廠模式 | 探討軟件設(shè)計(jì)中遇到的難題 1. 依賴反轉(zhuǎn)原則的設(shè)計(jì)難題 2. 開(kāi)放-封閉原則的設(shè)計(jì)難題 3. 探討工廠模式的本質(zhì)
簡(jiǎn)單工廠模式 1. 簡(jiǎn)單工廠模式的C++實(shí)現(xiàn) 2. 基于配置的簡(jiǎn)單工廠模式 3. 剖析簡(jiǎn)單工廠如何實(shí)現(xiàn)依賴反轉(zhuǎn)原則 案例:剖析Spring的beanFactory 4. 解讀工廠模式對(duì)設(shè)計(jì)的重大意義 5. 講解如何創(chuàng)建一個(gè)工廠 1) 創(chuàng)建工廠的步驟與關(guān)鍵點(diǎn) 2) 利用Spring框架簡(jiǎn)化工廠類(lèi)的設(shè)計(jì) 案例:數(shù)據(jù)導(dǎo)出功能的工廠實(shí)現(xiàn)
工廠方法模式 1. 工廠方法模式的概念 2. 工廠方法模式的應(yīng)用 案例:SAX框架的工廠類(lèi)設(shè)計(jì)
抽象工廠模式 1. 抽象工廠模式的概念 2. 抽象工廠模式的實(shí)現(xiàn) 案例:標(biāo)簽庫(kù)的設(shè)計(jì)改進(jìn)過(guò)程 1) 最初的標(biāo)簽庫(kù)設(shè)計(jì) 2) 運(yùn)用簡(jiǎn)單工廠的標(biāo)簽庫(kù)設(shè)計(jì) 3) 運(yùn)用工廠方法的標(biāo)簽庫(kù)設(shè)計(jì) 4) 運(yùn)用抽象工廠的標(biāo)簽庫(kù)設(shè)計(jì) 5) 最終基于配置的標(biāo)簽庫(kù)設(shè)計(jì) |
| 第六章 單例模式 | 什么是單例模式 1. 設(shè)計(jì)工廠類(lèi)面臨的問(wèn)題 2. 單例模式及其概念 3. 如何實(shí)現(xiàn)單例模式
單例模式的應(yīng)用 1. 單例模式帶來(lái)的設(shè)計(jì)變革 1) 充血模型vs.貧血模型 2) 探討單例模式與性能問(wèn)題 2. 單例模式改變了很多軟件的設(shè)計(jì)
|
| 第七章 原型模式 | 什么是原型模式 1. 工廠類(lèi)在提供產(chǎn)品時(shí)遇到的設(shè)計(jì)問(wèn)題 2. 原型模式及其概念
原型模式的設(shè)計(jì)實(shí)現(xiàn) 案例:函數(shù)調(diào)用的無(wú)副作用問(wèn)題 案例:JavsScript中的原型模式 |
| 第八章 模板方法模式 | 什么是模板方法模式 1. 煮咖啡給我們的啟示 2. 設(shè)計(jì)工廠類(lèi)的新思路 3. 模板方法模式及其概念
模板方法模式的作用與技巧 案例:一個(gè)工廠模板的設(shè)計(jì)與實(shí)現(xiàn) 深入理解不要重復(fù)自己原則 1. 重復(fù)代碼帶來(lái)的嚴(yán)重后果 2. 散彈式修改及其解決思路 3. 探討實(shí)現(xiàn)代碼復(fù)用的難題 4. 代碼復(fù)用在不同場(chǎng)合采用的方法 5. 模板方法模式在代碼復(fù)用中的作用
|
| 第九章 裝飾者模式 | 什么是裝飾者模式 1. 業(yè)務(wù)量增長(zhǎng)帶來(lái)的多數(shù)據(jù)源問(wèn)題 2. 運(yùn)用裝飾者模式巧妙解決多數(shù)據(jù)源問(wèn)題 3. 裝飾者模式及其概念
裝飾者模式的應(yīng)用 案例:多數(shù)據(jù)源的設(shè)計(jì)實(shí)現(xiàn) 1. 多數(shù)據(jù)源問(wèn)題的分析設(shè)計(jì)過(guò)程 2. 多數(shù)據(jù)源的設(shè)計(jì)與實(shí)現(xiàn) 案例:商城收銀系統(tǒng)的設(shè)計(jì)變更過(guò)程 1. 商城收銀系統(tǒng)期初的設(shè)計(jì) 2. 混合策略的設(shè)計(jì)與實(shí)現(xiàn) 3. 多層裝飾者的設(shè)計(jì)與實(shí)現(xiàn) 重新理解里氏替換原則 1. 透明的功能擴(kuò)展 2. 里氏替換原則 練習(xí):商場(chǎng)收銀系統(tǒng)的2種設(shè)計(jì)與實(shí)現(xiàn) |
| 第十章 橋接模式 | 什么是橋接模式 1. 對(duì)象繼承的泛濫 2. 橋接模式及其概念
橋接模式的應(yīng)用 案例:?jiǎn)T工管理與工資發(fā)放的設(shè)計(jì) 1. 員工管理與工資發(fā)放帶來(lái)的繼承泛濫問(wèn)題 2. 采用橋接模式的設(shè)計(jì)與實(shí)現(xiàn) 案例:查詢支持類(lèi)的設(shè)計(jì) 1. 查詢支持類(lèi)遭遇的繼承泛濫問(wèn)題 2. 查詢支持類(lèi)的解決方案 3. 單例模式下查詢支持類(lèi)的設(shè)計(jì) 深入體會(huì)單一職責(zé)原則 |
| 第十一章 享元模式 | 什么是享元模式 1. Hibernate是怎樣訪問(wèn)數(shù)據(jù)的 2. 享元模式及其概念
享元模式的應(yīng)用 案例:數(shù)據(jù)緩存的設(shè)計(jì)實(shí)現(xiàn) 案例:享元模式在大數(shù)據(jù)中的應(yīng)用 |
| 第十二章 其它設(shè)計(jì)模式 | 觀察者模式:JobHunter的情景劇 代理模式:老板與秘書(shū)的差異 命令模式:像工作流一樣處理業(yè)務(wù) 外觀模式:超級(jí)家庭影院的煩惱 構(gòu)建器模式:SQL Builder的設(shè)計(jì) 組合模式:如何構(gòu)建一棵樹(shù) 中介者模式:QQ在溝通中的作用 迭代器模式:如何順序訪問(wèn)一個(gè)集合 |
| 第2-4天 | 軟件重構(gòu)實(shí)戰(zhàn)授課內(nèi)容 |
| 第一部分 為什么軟件需要及時(shí)重構(gòu) | |
| 第一單元 剖析軟件質(zhì)量不斷下降的根源 | 質(zhì)量不斷下降的表現(xiàn): 1. 程序代碼越來(lái)越亂 2. 軟件維護(hù)成本越來(lái)越高 3. 軟件變更越來(lái)越困難 4. 無(wú)法進(jìn)行新技術(shù)的改造 以往采取的措施: 1. 頭痛醫(yī)頭,腳痛醫(yī)腳 2. 拋棄掉重新編寫(xiě) 3. 因擔(dān)心未來(lái)變化而做的過(guò)度設(shè)計(jì) 帶來(lái)的問(wèn)題 1. 團(tuán)隊(duì)成員越來(lái)越多但效率卻越來(lái)越低 2. 測(cè)試變得越來(lái)越困難而任務(wù)繁重 3. 軟件系統(tǒng)越來(lái)越笨重而不適應(yīng)未來(lái)變化 分析與反思
案例分析:一個(gè)遺留系統(tǒng)的演化過(guò)程 1. 起初的設(shè)計(jì) 2. 隨后的變更 3. 質(zhì)量不斷下降的過(guò)程 軟件質(zhì)量下降的根源: 1. 軟件總是因變更而變得越來(lái)越復(fù)雜 2. 軟件結(jié)構(gòu)已經(jīng)不再適應(yīng)復(fù)雜的軟件需求 3. 必須要調(diào)整軟件結(jié)構(gòu)以適應(yīng)新的軟件需求
軟件是因需求變更而質(zhì)量下降嗎? 案例分析:推演軟件變更的設(shè)計(jì)過(guò)程 應(yīng)對(duì)軟件變更的最佳方式:兩頂帽子 1. 重構(gòu)原有代碼以適應(yīng)新的需求 2. 實(shí)現(xiàn)新的需求 案例:演示兩頂帽子的設(shè)計(jì)過(guò)程 案例:財(cái)務(wù)憑證生成程序的設(shè)計(jì)過(guò)程 |
| 第二單元 高質(zhì)量的軟件設(shè)計(jì)過(guò)程 | 案例講解軟件設(shè)計(jì)原則 1. 低耦合 1) 依賴反轉(zhuǎn)原則(DIP) 案例:購(gòu)票業(yè)務(wù)類(lèi)與數(shù)據(jù)訪問(wèn)類(lèi) 2) 開(kāi)放-封閉原則(OCP) 案例:需求變更與可擴(kuò)展點(diǎn)設(shè)計(jì) 案例:Square/Circle的解決方案 3) 里氏替換原則(LSP) 案例:Rectangle/Square的問(wèn)題 案例:查詢參數(shù)傳遞類(lèi)的問(wèn)題 2. 高內(nèi)聚 1) 單一職責(zé)原則(SRP) 案例:財(cái)務(wù)憑證變更帶來(lái)的問(wèn)題 案例:超級(jí)大函數(shù)與大對(duì)象的難題 案例:MySQL讀寫(xiě)分離的改造過(guò)程 2) 信息專(zhuān)家模式 3) 不要重復(fù)自己原則(DRY) 4) 典型的代碼重復(fù)案例 5) 探討代碼復(fù)用的難題
以往軟件設(shè)計(jì)的過(guò)程: 3. 演示以往軟件設(shè)計(jì)的過(guò)程 4. 剖析以往軟件設(shè)計(jì)的問(wèn)題與風(fēng)險(xiǎn)
小步快跑模式的開(kāi)發(fā)過(guò)程: 1. 用最快的速度開(kāi)發(fā)一個(gè)最核心的功能 2. 讓第一個(gè)版本運(yùn)行起來(lái)并可以驗(yàn)證 3. 在第一個(gè)版本的基礎(chǔ)上不斷添加功能: a. 每次只添加一個(gè)很簡(jiǎn)單、很單一的功能 b. 每次以兩頂帽子的方式添加新功能 c. 運(yùn)行、調(diào)試與驗(yàn)證 d. 重復(fù)這個(gè)過(guò)程添加下一個(gè)功能 4. 復(fù)雜的系統(tǒng)就是由一次次正確開(kāi)發(fā)的不斷積累而成
案例:演示小步快跑的開(kāi)發(fā)過(guò)程 小步快跑解決的問(wèn)題: 1. 復(fù)雜功能有效地解耦 2. 代碼編寫(xiě)總是可測(cè)試與驗(yàn)證 3. 簡(jiǎn)化設(shè)計(jì)與思考的復(fù)雜度 4. 適時(shí)重構(gòu)以避免軟件退化 案例:數(shù)據(jù)推送程序的設(shè)計(jì)過(guò)程 |
| 第二部分 如何進(jìn)行軟件重構(gòu) | |
| 第三單元 何為重構(gòu) | 軟件重構(gòu)的概念 1. 重構(gòu)是一系列代碼的等量變換 案例:一個(gè)Hello World重構(gòu)過(guò)程 2. 重構(gòu)的保險(xiǎn)索:自動(dòng)化測(cè)試 案例:Hello World的自動(dòng)化測(cè)試過(guò)程 3. 軟件修改的四種動(dòng)機(jī)——重構(gòu)的價(jià)值 4. 一個(gè)真實(shí)的謊言——重構(gòu)的誤區(qū) 5. 重構(gòu)的主要方法與技巧
案例分析:重構(gòu)一個(gè)大型遺留系統(tǒng) 1. 重構(gòu)第一步:分解大函數(shù) 超級(jí)大函數(shù)及其危害 案例:演示大函數(shù)產(chǎn)生的過(guò)程 案例:演示抽取方法操作步驟 實(shí)踐抽取方法會(huì)遇到的問(wèn)題和解決方案 2. 重構(gòu)第二步:拆分大對(duì)象 超級(jí)大對(duì)象及其危害 案例:演示超級(jí)大對(duì)象的產(chǎn)生過(guò)程 案例:演示抽取類(lèi)的操作步驟 講解單一職責(zé)設(shè)計(jì)原則 案例:演示“分久必合,合久必分”的重構(gòu)過(guò)程 3. 重構(gòu)第三步:提高復(fù)用率 講解順序編程及其危害 “不要重復(fù)代碼”原則 案例:提高代碼復(fù)用的6個(gè)方法 案例:演示新增代碼時(shí)的代碼復(fù)用過(guò)程 用靜態(tài)檢查工具檢查重復(fù)代碼 4. 重構(gòu)第四步:可擴(kuò)展設(shè)計(jì) 過(guò)度設(shè)計(jì) vs. 恰如其分的設(shè)計(jì) 講解“開(kāi)放-封閉”的設(shè)計(jì)原則 案例:講解可擴(kuò)展設(shè)計(jì)的4個(gè)方法 案例:講解新增代碼的可擴(kuò)展設(shè)計(jì)過(guò)程 5. 重構(gòu)第五步:降低耦合度 案例:講解接口、實(shí)現(xiàn)與工廠模式 案例:講解外部接口解耦與適配器模式 6. 重構(gòu)第六步:系統(tǒng)分層 反思軟件架構(gòu)需要怎樣的分層結(jié)構(gòu) 遺留系統(tǒng)如何擁抱需求變化 遺留系統(tǒng)如何應(yīng)對(duì)技術(shù)變革 7. 重構(gòu)第七步:領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的概念 講解領(lǐng)域模型分析方法 案例:智能溫控器分析設(shè)計(jì)過(guò)程(嵌入式+物聯(lián)網(wǎng)) 1) 最初的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)過(guò)程 2) 需求變更的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 3) 面向物聯(lián)網(wǎng)的架構(gòu)演進(jìn)
練習(xí):重構(gòu)一個(gè)小程序并編寫(xiě)測(cè)試腳本
|
| 第四單元 關(guān)于重構(gòu)的討論 | 什么時(shí)候重構(gòu) 1. 重構(gòu)是一種習(xí)慣 2. 重構(gòu)讓程序可讀 3. 重構(gòu),才好復(fù)用 4. 先重構(gòu),再擴(kuò)展 5. 緊急任務(wù)時(shí)的重構(gòu)
測(cè)試的困境 1. 重構(gòu)初期的困局 2. 解耦與自動(dòng)化測(cè)試 3. 建立自動(dòng)化測(cè)試體系
重構(gòu)的評(píng)價(jià) 1. 評(píng)價(jià)軟件質(zhì)量的指標(biāo) 2. 評(píng)價(jià)軟件質(zhì)量的工具 |
范老師 獨(dú)立咨詢顧問(wèn),暢銷(xiāo)書(shū)籍《架構(gòu)真意》與《大話重構(gòu)》的作者,規(guī)模化敏捷SPC。曾任航天信息首席架構(gòu)師,哈工大軟件工程碩士,軟件架構(gòu)及重構(gòu)的客座講師。從事軟件研發(fā)工作近二十年,并且現(xiàn)在一直堅(jiān)守在大型軟件架構(gòu)設(shè)計(jì)一線工作。從需求分析、軟件開(kāi)發(fā)到項(xiàng)目管理、架構(gòu)設(shè)計(jì)都有豐富的從業(yè)經(jīng)驗(yàn)。先后參與了數(shù)十個(gè)國(guó)內(nèi)大型軟件項(xiàng)目,涉及國(guó)家財(cái)政、軍工、稅務(wù)、醫(yī)療等領(lǐng)域的大數(shù)據(jù)中臺(tái)建設(shè)、風(fēng)險(xiǎn)防控與人工智能研究。互聯(lián)網(wǎng)轉(zhuǎn)型、微服務(wù)轉(zhuǎn)型及大數(shù)據(jù)轉(zhuǎn)型的實(shí)踐者與倡導(dǎo)者。同時(shí),還是大型遺留系統(tǒng)改造專(zhuān)業(yè)戶,多次參與大型遺留系統(tǒng)改造、軟件系統(tǒng)重構(gòu)等重大項(xiàng)目,長(zhǎng)期關(guān)注大型業(yè)務(wù)系統(tǒng)的品質(zhì)保證、防止腐化以及技術(shù)改造等困擾軟件企業(yè)的問(wèn)題,在遺留系統(tǒng)優(yōu)化與改造方面有豐富的經(jīng)驗(yàn)。
程老師 中國(guó)科學(xué)院軟件研究所碩士,主要研究方向:架構(gòu)設(shè)計(jì)、項(xiàng)目管理實(shí)踐、大型高可用高并發(fā)架構(gòu)設(shè)計(jì)、微服務(wù)架構(gòu)、軟件測(cè)試等等。熟悉網(wǎng)絡(luò)分布式計(jì)算、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)操作系統(tǒng),精通J2EE、SQL、中間件服務(wù)器。在J2EE技術(shù)領(lǐng)域具有理論功底和實(shí)踐經(jīng)驗(yàn)。在J2ME商務(wù)應(yīng)用和基于J2ME游戲開(kāi)發(fā)領(lǐng)域具有深厚的理論功底和豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)。主要授課方向:DevOps落地實(shí)踐、微服務(wù)架構(gòu)、軟件構(gòu)架設(shè)計(jì)、UML、GO語(yǔ)言、OOAD、J2EE企業(yè)級(jí)高級(jí)應(yīng)用開(kāi)發(fā)等。 擅長(zhǎng)架構(gòu)企業(yè)級(jí)應(yīng)用;有獨(dú)立工作流引擎開(kāi)發(fā)、企業(yè)系統(tǒng)應(yīng)用集成方面的豐富經(jīng)驗(yàn);在企業(yè)門(mén)戶(Portal)、報(bào)表、工作流引擎和企業(yè)服務(wù)總線(ESB)等應(yīng)用領(lǐng)域有深入的理論研究和充分的實(shí)踐;對(duì)軟件開(kāi)發(fā)的整個(gè)流程有深刻認(rèn)識(shí),有很好的協(xié)作精神和學(xué)習(xí)能力。在架構(gòu)下的系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)方面均有豐富經(jīng)驗(yàn)。能夠結(jié)合實(shí)際,在復(fù)雜的應(yīng)用環(huán)境中選擇適合的技術(shù)組合并合理利用開(kāi)源中間件來(lái)降低項(xiàng)目開(kāi)發(fā)風(fēng)險(xiǎn)、縮短開(kāi)發(fā)周期、提高應(yīng)用系統(tǒng)的可維護(hù)性和可擴(kuò)展性。
尹老師 《Spring Cloud微服務(wù)-全棧技術(shù)與案例解析》,《Spring Cloud微服務(wù)入門(mén)實(shí)戰(zhàn)與進(jìn)階》作者。簡(jiǎn)單的技術(shù)愛(ài)好者,先后就職于京東和阿里巴巴。一直從事Java服務(wù)端開(kāi)發(fā)工作,前端開(kāi)發(fā)工作。主要關(guān)注分布式,高并發(fā),后端服務(wù),目前重心在微服務(wù)這塊。
個(gè)人成就出書(shū):《Spring Cloud微服務(wù)-全棧技術(shù)與案例解析》《Spring Cloud微服務(wù)入門(mén)實(shí)戰(zhàn)與進(jìn)階》GitChat: 微服務(wù)中的短信服務(wù)如何設(shè)計(jì)?演講:極部落Java開(kāi)發(fā)者大會(huì),iTechPlus Java開(kāi)發(fā)者大會(huì)分享嘉賓。
培訓(xùn)費(fèi):8800元/人(含培訓(xùn)費(fèi)、資料費(fèi)、學(xué)習(xí)期間午餐以及錄播視頻回放一年)食宿可統(tǒng)一安排,費(fèi)用自理。
聯(lián)系方式:中企聯(lián)企業(yè)培訓(xùn)網(wǎng) 咨詢電話:010-62885261 傳真:010-62885218 聯(lián) 系 人:潘洪利 13051501222 電子郵箱:phL568@163.com 網(wǎng) 址:www.athensband.com |
網(wǎng)上在線報(bào)名
您可能還對(duì)以下課程感興趣
關(guān)于我們 | 我們的服務(wù) | 聯(lián)系我們 | 廣告服務(wù) | 版權(quán)聲明 | 網(wǎng)站地圖 | 會(huì)員中心 | 積分禮品
版權(quán)所有@北京中聯(lián)培企業(yè)管理有限公司----中企聯(lián)企業(yè)培訓(xùn)網(wǎng) 京ICP備16064053號(hào)-1
www.athensband.com 企業(yè)咨詢QQ:2313655587 講師機(jī)構(gòu)合作QQ:2605766536