架構師
其他
架構設計
軟件設計
面向對象
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

C++代碼整潔之道—編寫高質量的代碼

課程費用

6800.00 /人

課程時長

2

成為教練

課程簡介

本課程為學員們進行深入的軟件設計能力學習和提升,設計了從C++項目實踐中的常見易錯問題、C++整潔代碼的技巧、面向對象設計、C++設計模式、C++重構及架構設計。
在C++項目實踐的內容中,本課程準備了大量的實際案例,從C++語法、語義、常見陷阱等分析,帶領學員掌握正確和優(yōu)質的寫法。

目標收益

培訓對象

課程大綱

第一單元 什么是優(yōu)秀設計——函數及類設計要點 內容一:什么是好的代碼
1.什么是好的軟件詳細設計和衡量的手段
2.世界大師的觀點(Robert C Martin , Peter Code等)
3.可擴展性(Extensibility)容易添加新的功能
4.靈活性(Flexibility)代碼修改平穩(wěn)地發(fā)生.
5.可插入性(Pluggability)結合案例,通過那些手段如何實現該目標
6.案例分析,剖析某不佳代碼,給出改進方案

內容二:函數設計及編寫要點
1.函數中的壞味道(平均長度、標識參數等)
2.高扇入與低扇出
3.函數設計的注意點,參數、標識參數及自解釋
4.重復代碼處理策略
5.指令與查詢分離
6.Switch-case、try-catch結構
7.案例分析及練習

內容三:類的設計及編碼原則運用
1.類中耦合度的分析和策略
2.用多態(tài)提高系統(tǒng)的可擴展性
3.用間接類增強系統(tǒng)靈活性
4.用控制類處理復雜邏輯
5.用適配器類避免條件分支
6.類的開封原則(OCP)、單一職責原則(SRP)及LSP原則
7.案例分析
第二單元
軟件設計模式與軟件設計思想
內容一:常見的設計模式及其運用
1.使用GOF設計模式,借鑒前人的經驗。
2.分析創(chuàng)建型模式:單例模式(Singleton)、工廠模式、抽象工廠模式(Abstractfactory)
3.分析結構型模式:橋梁模式(Bridge)、裝飾模式(Decorator)、適配器模式(Adapter)、代理模式(Proxy)、組合模式(Composite)
4.分析行為型模式:命令模式(Command )、觀察者模式(Observer)、狀態(tài)模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、訪問者模式(Template Method)

內容二:常見的設計模式及軟件原則案例分析
1.某游戲軟件設計
2.某管理軟件設計
第三單元 領域驅動及系統(tǒng)實踐 內容一:業(yè)務邏輯層中的子層設計
1.信息專家原則在重構的運用
2.使用類的封裝特征實現數據和函數隱藏
3.業(yè)務邏輯層組件設計
4.領域驅動設計的思想及其在類編碼中的實踐
5.業(yè)務服務、fa?ade、實體、值對象、領域對象
6.充血模型、貧血模型、失血模型在編碼中的分析

內容二:系統(tǒng)接口設計
1.內存接口及網絡接口要點
2.依賴倒置原則
3.接口隔離原則

內容三:IOC原理及其在編碼中的應用
1.理解IOC的本質
2.服務組件及能組件的設計
3.靈活使用IOC達成可擴展的代碼體系
案例分析及練習——通用數據處理系統(tǒng)設計及實現

內容四、 典型案例分析
1.訂餐系統(tǒng)
2.某設備系統(tǒng)設計
第四單元 識別代碼中的壞味道及重構實踐 內容一:重構初步:識別編碼中的壞味道
1.重復的代碼
2.過大的類及過長的函數
3.耦合:依戀情結、數據泥團及過度耦合的消息鏈
4.分散的邏輯:發(fā)散的變化及霰彈式的修改
5.復雜的邏輯:switch現象及平行繼承體系
6.其它:中間人、數據類、不佳的繼承

內容二:重構實踐:面向對象及領域驅動
1.將過程化設計轉化為對象設計,并討論過程化設計與對象化設計的特點及歷史博弈;并給出過程式設計及及對象設計的模式——合適的就是好的!
2.封裝值域/自封裝值域的重構
3.以數據類取代記錄的策略
4.以對象取代數組的策略
5.以類取代型別碼——Replace Type Code with Class
6.以子類取代型別碼——Replace Type Code with Subclasses
7.以值域取代子類——Replace Subclass with Fields
8.建模為屬性與建模為對象——系統(tǒng)建模中的微妙變化
9.Data Class——純粹的數據類
10.以State/Strategy取代型別碼
11.通過案例介紹函數的重構

內容三:重構實踐—復雜條件表達式重構
1.常見問題,如何處理讓人瘋狂的復雜分類?
2.以多態(tài)取代條件式——Replace Conditional with Polymorphism
3.提煉繼承體系——Extract Hierarchy
4.塑造模板函數——Form Template Method
5.以委托取代繼承——Replace Inheritance with Delegation
6.以繼承取代委托——Replace Delegation with Inheritance
7.用Strategy替換條件邏輯
8.用Bridge組合動態(tài)變化
9.用State替換狀態(tài)改變條件語句
10.用Composite替換隱含樹
11.用Command替換條件調度程序
12.在多態(tài)體系中,如何處理子條件不一致的情況——繼承體系中的高級技巧。

內容四:重構實踐—去除“大泥球”式的設計
1.過大的函數、模塊、子系統(tǒng)
2.依戀情結、數據泥團
3.從系統(tǒng)設計的角度分析混亂產生的原因
4.通過案例介紹如何分解系統(tǒng)

內容五:重構實踐—職責單一
1.一個模塊完成一個職責——子模塊位于同一個抽象層次
2.功能函數與邏輯函數的分離
3.Divergent Change——發(fā)散的變化
4.Shotgun Surgery——散彈槍式的修改
第五單元平臺重構實踐 內容一:某系統(tǒng)重構分析
1.底層服務抽取分析
2.分析子系統(tǒng)并對其定位
3.重構對現有系統(tǒng)的沖擊及避免方式
第一單元 什么是優(yōu)秀設計——函數及類設計要點
內容一:什么是好的代碼
1.什么是好的軟件詳細設計和衡量的手段
2.世界大師的觀點(Robert C Martin , Peter Code等)
3.可擴展性(Extensibility)容易添加新的功能
4.靈活性(Flexibility)代碼修改平穩(wěn)地發(fā)生.
5.可插入性(Pluggability)結合案例,通過那些手段如何實現該目標
6.案例分析,剖析某不佳代碼,給出改進方案

內容二:函數設計及編寫要點
1.函數中的壞味道(平均長度、標識參數等)
2.高扇入與低扇出
3.函數設計的注意點,參數、標識參數及自解釋
4.重復代碼處理策略
5.指令與查詢分離
6.Switch-case、try-catch結構
7.案例分析及練習

內容三:類的設計及編碼原則運用
1.類中耦合度的分析和策略
2.用多態(tài)提高系統(tǒng)的可擴展性
3.用間接類增強系統(tǒng)靈活性
4.用控制類處理復雜邏輯
5.用適配器類避免條件分支
6.類的開封原則(OCP)、單一職責原則(SRP)及LSP原則
7.案例分析
第二單元
軟件設計模式與軟件設計思想
內容一:常見的設計模式及其運用
1.使用GOF設計模式,借鑒前人的經驗。
2.分析創(chuàng)建型模式:單例模式(Singleton)、工廠模式、抽象工廠模式(Abstractfactory)
3.分析結構型模式:橋梁模式(Bridge)、裝飾模式(Decorator)、適配器模式(Adapter)、代理模式(Proxy)、組合模式(Composite)
4.分析行為型模式:命令模式(Command )、觀察者模式(Observer)、狀態(tài)模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、訪問者模式(Template Method)

內容二:常見的設計模式及軟件原則案例分析
1.某游戲軟件設計
2.某管理軟件設計
第三單元 領域驅動及系統(tǒng)實踐
內容一:業(yè)務邏輯層中的子層設計
1.信息專家原則在重構的運用
2.使用類的封裝特征實現數據和函數隱藏
3.業(yè)務邏輯層組件設計
4.領域驅動設計的思想及其在類編碼中的實踐
5.業(yè)務服務、fa?ade、實體、值對象、領域對象
6.充血模型、貧血模型、失血模型在編碼中的分析

內容二:系統(tǒng)接口設計
1.內存接口及網絡接口要點
2.依賴倒置原則
3.接口隔離原則

內容三:IOC原理及其在編碼中的應用
1.理解IOC的本質
2.服務組件及能組件的設計
3.靈活使用IOC達成可擴展的代碼體系
案例分析及練習——通用數據處理系統(tǒng)設計及實現

內容四、 典型案例分析
1.訂餐系統(tǒng)
2.某設備系統(tǒng)設計
第四單元 識別代碼中的壞味道及重構實踐
內容一:重構初步:識別編碼中的壞味道
1.重復的代碼
2.過大的類及過長的函數
3.耦合:依戀情結、數據泥團及過度耦合的消息鏈
4.分散的邏輯:發(fā)散的變化及霰彈式的修改
5.復雜的邏輯:switch現象及平行繼承體系
6.其它:中間人、數據類、不佳的繼承

內容二:重構實踐:面向對象及領域驅動
1.將過程化設計轉化為對象設計,并討論過程化設計與對象化設計的特點及歷史博弈;并給出過程式設計及及對象設計的模式——合適的就是好的!
2.封裝值域/自封裝值域的重構
3.以數據類取代記錄的策略
4.以對象取代數組的策略
5.以類取代型別碼——Replace Type Code with Class
6.以子類取代型別碼——Replace Type Code with Subclasses
7.以值域取代子類——Replace Subclass with Fields
8.建模為屬性與建模為對象——系統(tǒng)建模中的微妙變化
9.Data Class——純粹的數據類
10.以State/Strategy取代型別碼
11.通過案例介紹函數的重構

內容三:重構實踐—復雜條件表達式重構
1.常見問題,如何處理讓人瘋狂的復雜分類?
2.以多態(tài)取代條件式——Replace Conditional with Polymorphism
3.提煉繼承體系——Extract Hierarchy
4.塑造模板函數——Form Template Method
5.以委托取代繼承——Replace Inheritance with Delegation
6.以繼承取代委托——Replace Delegation with Inheritance
7.用Strategy替換條件邏輯
8.用Bridge組合動態(tài)變化
9.用State替換狀態(tài)改變條件語句
10.用Composite替換隱含樹
11.用Command替換條件調度程序
12.在多態(tài)體系中,如何處理子條件不一致的情況——繼承體系中的高級技巧。

內容四:重構實踐—去除“大泥球”式的設計
1.過大的函數、模塊、子系統(tǒng)
2.依戀情結、數據泥團
3.從系統(tǒng)設計的角度分析混亂產生的原因
4.通過案例介紹如何分解系統(tǒng)

內容五:重構實踐—職責單一
1.一個模塊完成一個職責——子模塊位于同一個抽象層次
2.功能函數與邏輯函數的分離
3.Divergent Change——發(fā)散的變化
4.Shotgun Surgery——散彈槍式的修改
第五單元平臺重構實踐
內容一:某系統(tǒng)重構分析
1.底層服務抽取分析
2.分析子系統(tǒng)并對其定位
3.重構對現有系統(tǒng)的沖擊及避免方式

課程費用

6800.00 /人

課程時長

2

預約體驗票 我要分享

近期公開課推薦

近期公開課推薦

活動詳情

提交需求