日韩人妻少妇性无码系列…_一级毛片久久免费观看_中文字幕人妻有码无码视频_毛片免费在线观看

當前位置: 首頁 > 公開課程 > 課程內(nèi)容
廣告1
相關(guān)熱門公開課程更多 》
相關(guān)熱門內(nèi)訓課程更多 》
相關(guān)最新下載資料

軟件設(shè)計模式與軟件重構(gòu)實戰(zhàn)訓練營 培訓班

課程編號:58511   課程人氣:628

課程價格:¥8800  課程時長:4天

行業(yè)類別:各行業(yè)通用    專業(yè)類別:職業(yè)素養(yǎng) 

授課講師:專家團

課程安排:

       2024.6.20 北京



  • 課程說明
  • 講師介紹
  • 選擇同類課
【培訓對象】
初中高級工程師、企業(yè)架構(gòu)師、軟件設(shè)計師等; 各類軟件研發(fā)中心的軟件設(shè)計師、架構(gòu)師、項目經(jīng)理、技術(shù)總監(jiān)、質(zhì)量部門經(jīng)理。對于重構(gòu)技術(shù)懷有疑問和困惑,需要梳理解答的團隊和個人,效果最佳。

【培訓收益】


第一章
什么是高質(zhì)量的軟件設(shè)計 情景劇:軟件設(shè)計焦慮癥
1. 上次的設(shè)計太糟糕了,痛下決心以后要好好設(shè)計
2. 再次進行軟件設(shè)計時卻不知道該怎樣設(shè)計
1) 思考了很多,不知如何下手
2) 需求一變更,重新回到了糟糕的狀態(tài)
探討:如何進行高質(zhì)量的軟件設(shè)計
什么是高質(zhì)量的軟件設(shè)計
1. 軟件的質(zhì)量保證:內(nèi)部質(zhì)量與外部質(zhì)量
2. 高質(zhì)量軟件設(shè)計的標準:易讀、易于維護、易于變更
第二章
軟件設(shè)計原則 易于閱讀:
1. 規(guī)范代碼、編寫注釋與表明動機
案例:代碼編寫范例與簡便易行的方法
2. 領(lǐng)域驅(qū)動設(shè)計

易于維護與變更
1. 互聯(lián)網(wǎng)+帶來的挑戰(zhàn)
1) 系統(tǒng)需要不斷地技術(shù)升級與改造
2) 傳統(tǒng)行業(yè)必須向互聯(lián)網(wǎng)轉(zhuǎn)型
3) 但技術(shù)變革不是換零件那么簡單
4) 剖析應(yīng)對技術(shù)變革的方案
2. 案例講解軟件設(shè)計原則
1) 低耦合
a. 依賴反轉(zhuǎn)原則(DIP)
案例:購票業(yè)務(wù)類與數(shù)據(jù)訪問類
b. 開放-封閉原則(OCP)
案例:需求變更與可擴展點設(shè)計
案例:Square/Circle的解決方案
c. 里氏替換原則(LSP)
案例:Rectangle/Square的問題
案例:查詢參數(shù)傳遞類的問題
2) 高內(nèi)聚
案例:評審系統(tǒng)的設(shè)計
a. 單一職責原則(SRP)
案例:財務(wù)憑證變更帶來的問題
案例:超級大函數(shù)與大對象的難題
案例:MySQL讀寫分離的改造過程
b. 信息專家模式
c. 不要重復自己原則(DRY)
典型的代碼重復案例
探討代碼復用的難題

探討軟件設(shè)計模式:
1. 設(shè)計模式的由來
2. 設(shè)計模式的發(fā)展
3. 設(shè)計模式對高質(zhì)量軟件設(shè)計的作用
第二部分 軟件設(shè)計模式
第三章
適配器模式 什么是適配器模式
1. 軟件設(shè)計中外部接口的難題
2. 第三方框架帶來的設(shè)計難題
3. 適配器模式及其概念

適配器模式的應(yīng)用
1. 適配器模式解決第三方框架帶來的難題
案例:Hibernate適配器的設(shè)計
2. 適配器模式解決外部接口的設(shè)計難題
案例:第三方支付接口的設(shè)計
案例:財務(wù)數(shù)據(jù)接口的設(shè)計

第四章
策略模式 什么是策略模式
1. 工資發(fā)放功能遇到的難題
1) 工資發(fā)放功能最初的設(shè)計及其問題
2) 對問題的分析過程及其新的設(shè)計思路
2. 策略模式及其概念

策略模式的應(yīng)用
1. 案例:工資發(fā)放功能設(shè)計改進的過程
1) 工資發(fā)放功能的Java實現(xiàn)
2) 工資發(fā)放功能的C++實現(xiàn)
2. 案例:數(shù)據(jù)導出功能的設(shè)計實現(xiàn)
1) 深入理解開放-封閉原則
2) 數(shù)據(jù)導出功能的變更與改進過程
3. 案例:財務(wù)憑證生成功能的設(shè)計過程
1) 財務(wù)憑證生成功能的初始需求與設(shè)計
2) 財務(wù)憑證生成功能的擴展與分析過程
3) 財務(wù)憑證生成功能的最終設(shè)計
4) 深入理解單一職責原則
5) 學習“兩頂帽子”的設(shè)計方式
練習:財務(wù)憑證生成功能的設(shè)計與實現(xiàn)
第五章
工廠模式 探討軟件設(shè)計中遇到的難題
1. 依賴反轉(zhuǎn)原則的設(shè)計難題
2. 開放-封閉原則的設(shè)計難題
3. 探討工廠模式的本質(zhì)

簡單工廠模式
1. 簡單工廠模式的C++實現(xiàn)
2. 基于配置的簡單工廠模式
3. 剖析簡單工廠如何實現(xiàn)依賴反轉(zhuǎn)原則
案例:剖析Spring的beanFactory
4. 解讀工廠模式對設(shè)計的重大意義
5. 講解如何創(chuàng)建一個工廠
1) 創(chuàng)建工廠的步驟與關(guān)鍵點
2) 利用Spring框架簡化工廠類的設(shè)計
案例:數(shù)據(jù)導出功能的工廠實現(xiàn)

工廠方法模式
1. 工廠方法模式的概念
2. 工廠方法模式的應(yīng)用
案例:SAX框架的工廠類設(shè)計

抽象工廠模式
1. 抽象工廠模式的概念
2. 抽象工廠模式的實現(xiàn)
案例:標簽庫的設(shè)計改進過程
1) 最初的標簽庫設(shè)計
2) 運用簡單工廠的標簽庫設(shè)計
3) 運用工廠方法的標簽庫設(shè)計
4) 運用抽象工廠的標簽庫設(shè)計
5) 最終基于配置的標簽庫設(shè)計
第六章
單例模式 什么是單例模式
1. 設(shè)計工廠類面臨的問題
2. 單例模式及其概念
3. 如何實現(xiàn)單例模式

單例模式的應(yīng)用
1. 單例模式帶來的設(shè)計變革
1) 充血模型vs.貧血模型
2) 探討單例模式與性能問題
2. 單例模式改變了很多軟件的設(shè)計
第七章
原型模式 什么是原型模式
1. 工廠類在提供產(chǎn)品時遇到的設(shè)計問題
2. 原型模式及其概念

原型模式的設(shè)計實現(xiàn)
案例:函數(shù)調(diào)用的無副作用問題
案例:JavsScript中的原型模式
第八章
模板方法模式 什么是模板方法模式
1. 煮咖啡給我們的啟示
2. 設(shè)計工廠類的新思路
3. 模板方法模式及其概念

模板方法模式的作用與技巧
案例:一個工廠模板的設(shè)計與實現(xiàn)
深入理解不要重復自己原則
1. 重復代碼帶來的嚴重后果
2. 散彈式修改及其解決思路
3. 探討實現(xiàn)代碼復用的難題
4. 代碼復用在不同場合采用的方法
5. 模板方法模式在代碼復用中的作用
第九章
裝飾者模式 什么是裝飾者模式
1. 業(yè)務(wù)量增長帶來的多數(shù)據(jù)源問題
2. 運用裝飾者模式巧妙解決多數(shù)據(jù)源問題
3. 裝飾者模式及其概念

裝飾者模式的應(yīng)用
案例:多數(shù)據(jù)源的設(shè)計實現(xiàn)
1. 多數(shù)據(jù)源問題的分析設(shè)計過程
2. 多數(shù)據(jù)源的設(shè)計與實現(xiàn)
案例:商城收銀系統(tǒng)的設(shè)計變更過程
1. 商城收銀系統(tǒng)期初的設(shè)計
2. 混合策略的設(shè)計與實現(xiàn)
3. 多層裝飾者的設(shè)計與實現(xiàn)
重新理解里氏替換原則
1. 透明的功能擴展
2. 里氏替換原則
練習:商場收銀系統(tǒng)的2種設(shè)計與實現(xiàn)
第十章
橋接模式 什么是橋接模式
1. 對象繼承的泛濫
2. 橋接模式及其概念

橋接模式的應(yīng)用
案例:員工管理與工資發(fā)放的設(shè)計
1. 員工管理與工資發(fā)放帶來的繼承泛濫問題
2. 采用橋接模式的設(shè)計與實現(xiàn)
案例:查詢支持類的設(shè)計
1. 查詢支持類遭遇的繼承泛濫問題
2. 查詢支持類的解決方案
3. 單例模式下查詢支持類的設(shè)計
深入體會單一職責原則
第十一章
享元模式 什么是享元模式
1. Hibernate是怎樣訪問數(shù)據(jù)的
2. 享元模式及其概念

享元模式的應(yīng)用
案例:數(shù)據(jù)緩存的設(shè)計實現(xiàn)
案例:享元模式在大數(shù)據(jù)中的應(yīng)用
第十二章
其它設(shè)計模式 觀察者模式:JobHunter的情景劇
代理模式:老板與秘書的差異
命令模式:像工作流一樣處理業(yè)務(wù)
外觀模式:超級家庭影院的煩惱
構(gòu)建器模式:SQL Builder的設(shè)計
組合模式:如何構(gòu)建一棵樹
中介者模式:QQ在溝通中的作用
迭代器模式:如何順序訪問一個集合
第2-4天 軟件重構(gòu)實戰(zhàn)授課內(nèi)容
第一部分 為什么軟件需要及時重構(gòu)
第一單元
剖析軟件質(zhì)量不斷下降的根源 質(zhì)量不斷下降的表現(xiàn):
1. 程序代碼越來越亂
2. 軟件維護成本越來越高
3. 軟件變更越來越困難
4. 無法進行新技術(shù)的改造
以往采取的措施:
1. 頭痛醫(yī)頭,腳痛醫(yī)腳
2. 拋棄掉重新編寫
3. 因擔心未來變化而做的過度設(shè)計
帶來的問題
1. 團隊成員越來越多但效率卻越來越低
2. 測試變得越來越困難而任務(wù)繁重
3. 軟件系統(tǒng)越來越笨重而不適應(yīng)未來變化
分析與反思

案例分析:一個遺留系統(tǒng)的演化過程
1. 起初的設(shè)計
2. 隨后的變更
3. 質(zhì)量不斷下降的過程
軟件質(zhì)量下降的根源:
1. 軟件總是因變更而變得越來越復雜
2. 軟件結(jié)構(gòu)已經(jīng)不再適應(yīng)復雜的軟件需求
3. 必須要調(diào)整軟件結(jié)構(gòu)以適應(yīng)新的軟件需求

軟件是因需求變更而質(zhì)量下降嗎?
案例分析:推演軟件變更的設(shè)計過程
應(yīng)對軟件變更的最佳方式:兩頂帽子
1. 重構(gòu)原有代碼以適應(yīng)新的需求
2. 實現(xiàn)新的需求
案例:演示兩頂帽子的設(shè)計過程
案例:財務(wù)憑證生成程序的設(shè)計過程
第二單元
高質(zhì)量的軟件設(shè)計過程 案例講解軟件設(shè)計原則
1. 低耦合
1) 依賴反轉(zhuǎn)原則(DIP)
案例:購票業(yè)務(wù)類與數(shù)據(jù)訪問類
2) 開放-封閉原則(OCP)
案例:需求變更與可擴展點設(shè)計
案例:Square/Circle的解決方案
3) 里氏替換原則(LSP)
案例:Rectangle/Square的問題
案例:查詢參數(shù)傳遞類的問題
2. 高內(nèi)聚
1) 單一職責原則(SRP)
案例:財務(wù)憑證變更帶來的問題
案例:超級大函數(shù)與大對象的難題
案例:MySQL讀寫分離的改造過程
2) 信息專家模式
3) 不要重復自己原則(DRY)
4) 典型的代碼重復案例
5) 探討代碼復用的難題

以往軟件設(shè)計的過程:
3. 演示以往軟件設(shè)計的過程
4. 剖析以往軟件設(shè)計的問題與風險

小步快跑模式的開發(fā)過程:
1. 用最快的速度開發(fā)一個最核心的功能
2. 讓第一個版本運行起來并可以驗證
3. 在第一個版本的基礎(chǔ)上不斷添加功能:
a. 每次只添加一個很簡單、很單一的功能
b. 每次以兩頂帽子的方式添加新功能
c. 運行、調(diào)試與驗證
d. 重復這個過程添加下一個功能
4. 復雜的系統(tǒng)就是由一次次正確開發(fā)的不斷積累而成

案例:演示小步快跑的開發(fā)過程
小步快跑解決的問題:
1. 復雜功能有效地解耦
2. 代碼編寫總是可測試與驗證
3. 簡化設(shè)計與思考的復雜度
4. 適時重構(gòu)以避免軟件退化
案例:數(shù)據(jù)推送程序的設(shè)計過程
第二部分 如何進行軟件重構(gòu)
第三單元
何為重構(gòu) 軟件重構(gòu)的概念
1. 重構(gòu)是一系列代碼的等量變換
案例:一個Hello World重構(gòu)過程
2. 重構(gòu)的保險索:自動化測試
案例:Hello World的自動化測試過程
3. 軟件修改的四種動機——重構(gòu)的價值
4. 一個真實的謊言——重構(gòu)的誤區(qū)
5. 重構(gòu)的主要方法與技巧

案例分析:重構(gòu)一個大型遺留系統(tǒng)
1. 重構(gòu)第一步:分解大函數(shù)
超級大函數(shù)及其危害
案例:演示大函數(shù)產(chǎn)生的過程
案例:演示抽取方法操作步驟
實踐抽取方法會遇到的問題和解決方案
2. 重構(gòu)第二步:拆分大對象
超級大對象及其危害
案例:演示超級大對象的產(chǎn)生過程
案例:演示抽取類的操作步驟
講解單一職責設(shè)計原則
案例:演示“分久必合,合久必分”的重構(gòu)過程
3. 重構(gòu)第三步:提高復用率
講解順序編程及其危害
“不要重復代碼”原則
案例:提高代碼復用的6個方法
案例:演示新增代碼時的代碼復用過程
用靜態(tài)檢查工具檢查重復代碼
4. 重構(gòu)第四步:可擴展設(shè)計
過度設(shè)計 vs. 恰如其分的設(shè)計
講解“開放-封閉”的設(shè)計原則
案例:講解可擴展設(shè)計的4個方法
案例:講解新增代碼的可擴展設(shè)計過程
5. 重構(gòu)第五步:降低耦合度
案例:講解接口、實現(xiàn)與工廠模式
案例:講解外部接口解耦與適配器模式
6. 重構(gòu)第六步:系統(tǒng)分層
反思軟件架構(gòu)需要怎樣的分層結(jié)構(gòu)
遺留系統(tǒng)如何擁抱需求變化
遺留系統(tǒng)如何應(yīng)對技術(shù)變革
7. 重構(gòu)第七步:領(lǐng)域驅(qū)動設(shè)計
領(lǐng)域驅(qū)動設(shè)計的概念
講解領(lǐng)域模型分析方法
案例:智能溫控器分析設(shè)計過程(嵌入式+物聯(lián)網(wǎng))
1) 最初的領(lǐng)域驅(qū)動設(shè)計過程
2) 需求變更的領(lǐng)域驅(qū)動設(shè)計
3) 面向物聯(lián)網(wǎng)的架構(gòu)演進

練習:重構(gòu)一個小程序并編寫測試腳本

第四單元
關(guān)于重構(gòu)的討論 什么時候重構(gòu)
1. 重構(gòu)是一種習慣
2. 重構(gòu)讓程序可讀
3. 重構(gòu),才好復用
4. 先重構(gòu),再擴展
5. 緊急任務(wù)時的重構(gòu)

測試的困境
1. 重構(gòu)初期的困局
2. 解耦與自動化測試
3. 建立自動化測試體系

重構(gòu)的評價
1. 評價軟件質(zhì)量的指標
2. 評價軟件質(zhì)量的工具
 

咨詢電話:
0571-86155444
咨詢熱線:
  • 微信:13857108608
聯(lián)系我們