課程目錄:軟件擴展性與重用性設計培訓
        4401 人關注
        (78637/99817)
        課程大綱:

        軟件擴展性與重用性設計培訓

         

         

         

        1. 什么是好的設計以及如何預先設計實現
        (1)什么是好的設計?
        (2)衡量好設計的手段
        (3)可擴展性(Extensibility)容易添加新的功能
        (4)靈活性(Flexibility)代碼修改平穩地發生
        (5)可插入性(Plug ability)容易將一個類抽去-同時也可將相同接口類加入
        (6)軟件的變化分析-發現變化/封裝變化/隔離變化
        (7)軟件需求的不可預測性-設計師預測式設計與過度設計
        (8)軟件演化式設計-敏捷的設計思想
        2. 邏輯架構切割
        (1)技術切割范式:針對所有業務功能進行技術切割方法論
        (2)技術元素的分層組織
        (3)技術元素的分包組織
        (4)技術元素的相似性與重疊性分析
        (5)技術元素的變化性設計
        (6)技術元素的性能、可靠、穩定與安全設計
        (7)技術元素并行開發與開發管理組織
        (8)技術元素難度復雜度與開發者能力關系
        (9)動手實踐:面向對象與面向方面的技術切割實踐,評選佳實踐成果
        3. 接口設計與解耦
        (1)接口設計的基本原則
        (2)接口的變化性與穩定性
        (3)定義技術元素間相互調用的接口
        (4)定義系統外部訪問集成的接口
        (5)定義框架管理的接口
        (6)注入變化觀察技術元素的波及面-耦合性分析
        (7)技術元素職責單一性與松耦合
        (8)案例分析:google的MapReduce的接口設計
        (9)動手實踐:類庫接口設計實踐,評選佳實踐成果
        4. 數據庫結構設計與大數據
        (1)數據庫設計的基本原則:適度使用范式原則
        (2)實現數據庫結構的彈性設計8種方案
        (3)大數據設計:權衡SQL與NoSQL
        (4)數據切割:分庫、分區與分布
        (5)數據存儲文件系統的彈性設計:MySQL與淘寶TFS
        (6)數據性能設計方案:對比MemCached、OceanBase與Spark
        (7)數據中的知識與決策
        (8)動手實踐:分組實現數據庫彈性設計,評選佳實踐成果
        5. 公共組件設計
        (1)公共組件結構切割
        (2)公共組件接口設計
        (3)公共組件的彈性設計
        (4)公共組件與功能組件的動態耦合設計
        (5)動手實踐:Cache組件設計
        (6)動手實踐:現有系統反向工程的公共組件合理性分析
        6. 框架平臺設計
        (1)UI框架設計
        (2)功能邏輯組件集成管理框架設計
        (3)數據訪問框架設計
        (4)數據存儲框架設計
        (5)案例分析:HADOOP框架剖析
        (6)動手實踐:現有系統反向工程的自定義框架的合理性分析
        7. 非功能性設計
        (1)各種質量屬性設計的戰術策略
        (2)掌控“相互沖突的質量屬性”設計的平衡點
        (3)軟件變化分析與預測
        (4)軟件變化設計策略
        (5)基于設計模式的變化設計
        (6)基于key-value的變化設計
        (7)基于邏輯判斷的變化設計
        (8)高可靠性設計
        (9)案例分析:SAP自我維護設計策略分析
        (10)動手實踐:現有系統反向工程的質量設計的合理性分析
        8. 部署運行維護設計
        (1)規劃系統開發的配置庫結構
        (2)規劃系統的編譯方案
        (3)規劃系統源代碼的版本方案
        (4)規劃系統物理文件的安裝方案
        (5)規劃系統中各個技術元素部署方案
        (6)系統集成構建方案
        (7)注入敏捷思想-持續集成構建
        (8)案例分析:微軟的每日構建
        (9)標注軟件結構中的“運維點”
        (10)制定“運維點”的運行維護策略
        (11)軟件結構中內置免疫系統
        (12)動手實踐:產品源代碼結構、編譯計劃、版本計劃與部署方案,評選佳實踐成果
        9. 架構關鍵點與工程
        (1)架構設計與開發效率:簡化開發
        (2)架構設計指導詳細設計與代碼編寫
        (3)注入敏捷的開發實踐方法:TDD
        (4)融合ITIL與DevOps的架構設計
        (5)軟件架構與人力組織結構映射
        (6)基于“軟件工廠”的開發模式
        (7)建立企業級知識庫
        (8)軟件動態運行維護規劃
        (9)動手實踐:現有系統反向工程的運維設計的合理性分析
        10. 架構模式與設計模式
        (1)模式的場景、角色、職責
        (2)模式應用誤區與風險
        (3)設計重構中模式應用
        (4)把握模式的使用尺度-過度使用模式與適度使用模式
        11. 軟件設計模式的應用(Design Patterns)
        (1)建筑模式與設計模式
        (2)過度使用設計模式的問題
        (3)設計模式如何適應變化和封裝
        (4)GRASP設計原則
        (5)關于功能與邏輯的分離
        (6)設計模式的組合應用方式
        (7)Framework設計中設計模式
        (8)結合案例進行分析,應用設計模式之前和應用之后的對比
        (9)動手實踐:學員依據案例進行設計模式實踐