1. <del id="djlcs"></del>

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

              軟件設計模式與軟件重構實(shí)戰訓練營(yíng) 培訓班

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

              課程價(jià)格:¥8800  課程時(shí)長(cháng):4天

              行業(yè)類(lèi)別:各行業(yè)通用    專(zhuān)業(yè)類(lèi)別:職業(yè)素養 

              授課講師:專(zhuān)家團

              課程安排:

                     2024.6.20 北京



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

              【培訓收益】


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

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

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

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

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

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

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

              工廠(chǎng)方法模式
              1. 工廠(chǎng)方法模式的概念
              2. 工廠(chǎng)方法模式的應用
              案例:SAX框架的工廠(chǎng)類(lèi)設計

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

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

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

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

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

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

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

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

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

              以往軟件設計的過(guò)程:
              3. 演示以往軟件設計的過(guò)程
              4. 剖析以往軟件設計的問(wèn)題與風(fēng)險

              小步快跑模式的開(kāi)發(fā)過(guò)程:
              1. 用最快的速度開(kāi)發(fā)一個(gè)最核心的功能
              2. 讓第一個(gè)版本運行起來(lái)并可以驗證
              3. 在第一個(gè)版本的基礎上不斷添加功能:
              a. 每次只添加一個(gè)很簡(jiǎn)單、很單一的功能
              b. 每次以?xún)身斆弊拥姆绞教砑有鹿δ?br /> c. 運行、調試與驗證
              d. 重復這個(gè)過(guò)程添加下一個(gè)功能
              4. 復雜的系統就是由一次次正確開(kāi)發(fā)的不斷積累而成

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

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

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

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

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

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

              咨詢(xún)電話(huà):
              0571-86155444
              咨詢(xún)熱線(xiàn):
              • 微信:13857108608
              聯(lián)系我們
              日韩一区二区三区免费高清|久久国产精品视频|精品一区二区无码|国产成人欧美日本在线观看

                    1. <del id="djlcs"></del>