副標題 |
軟件項目經理必修課 |
主辦單位 |
巔峰培訓會員單位 |
學員對象 |
軟件工程師、項目經理 |
授課時間 |
2009年12月5-6日 、常年舉辦,歡迎索取最新安排 |
授課顧問 |
趙老師 |
授課地點 |
北京 搜索北京課程
|
每班人數 |
|
報價 |
1800 |
課程目的 |
|
本課程是程序員走向項目經理的快速捷徑,更是項目經理提升技術管理水平的葵花寶典,課程對軟件企業提高工作效率,促進軟件生產能力,具有不可多得的推動作用。
課程起源:代碼是軟件工程師的基本功,但相當一部分程序員寫了幾年代碼仍然不得章法,被認為“沒有程序的味道”,而且還養成了許多錯誤的編程習慣,這導致很多企業,工作效率低下,產品或項目交付延期且要不斷地加班加點的惡性循環局面。這種狀況不僅加大了企業的運營成本,影響了企業的生產力水平,而且嚴重制約了企業的快速發展。
為此,如何降低軟件項目或產品成本,提高軟件工程師的生產力水平,我們邀請了多位軟件過程改進著名專家和程序高手,收集了大量的真實案例,針對項目過程中技術人員常犯的錯誤進行了匯總,研討,并最終形成改進解決方案的培訓教程。課程將通過大量的真實案例和代碼,以“魔鬼訓練”式的代碼訓練方式讓學員通過親自動手操作來理解代碼設計,編寫,重構以及調試。
課程收獲:代碼能力訓練是根據2/8原則,程序編寫中常見的錯誤80%都是重復的理論,本課程總結了程序員非常易犯的若干種錯誤,匯聚了軟件開發常見的多種設計模式以及多個編程實戰技巧,重點側重于程序員實際職業能力的提升。講師從程序編寫人員的基本編程習慣開始講解,通過大量的真實案例,貫穿了設計、編碼、重構、調試等整個軟件生命周期過程,詳細地介紹了各個階段需要注意的要點以及難點,這些知識都是培訓師十幾年編程經驗的總結,如何避免重復犯錯,讓代碼更具健壯性是代碼能力的關鍵點。
本課程是程序員走向成熟并迅速成長為項目經理的必經之路。
|
|
課程內容 |
|
課程綱要:
第一單元:面向對象程序設計的原則與模式
1.衡量軟件系統質量的標準
從一個案例說起:
工程中常見的設計不佳的系統舉例,分析其中設計失敗的關鍵之處。
1) 復合文件系統。
2) 資源庫系統。
問題所在
1)強耦合的壞處。2)低內聚的缺陷。3)避免“打補丁”式的修改。
2.用面向對象設計的原理優化設計
類的設計原則:開閉原則、依賴倒置原則、Liskov替換原則、單一職責原則、接口分離原則、組合復用原則、所知最少原則
通過案例說明:
1) 練習:對磁盤文件的處理,依賴注入的具體使用場合。
2) Liskov替換原則:
a) 例:會議管理系統。
b) 例:GUI組件
c) 例:線/線段。
d) 其它:脆弱基類的討論。
3) 練習:設計媒體墻系統;關注單一職責原則,討論各個方案的優缺點。
4) 接口設計中的問題:
a) 接口功能要內聚,接口中方法的數量要合適。
b) 擴展:內接口與外接口。核心部分對外暴露內接口,其它部分暴露出供外調用的外接口。
c) 擴展:普通接口與智能接口。智能接口供高層調用者,或不關心細節的調用者調用,普通接口供關系細節的調用者調用。
d) 工程實踐中經常遇到的接口設計疑惑;簡單但易出錯的陷阱。
通過舉例說明包內聚原則,耦合原則:
1) 常見的解耦方法。
2) 例:代碼的壞味道:分散的變化。
3) 與保護變化、隔離關注面、職責單一等的關系。
3. GRASP模式在程序設計中的運用
GRASP模式:信息專家、創建者、高內聚、低耦合、控制者、多態、間接、純虛構、保護變化
案例分析:
1) 商店收銀系統:違反信息專家的設計方式,使用信息專家的設計方式。
2) 面向對象與信息專家模式的聯系;面向對象的本質是什么。
3) 商務系統:大型系統中的信息專家模式運用。
4) 數據分析系統:數據字典使用中的創建者模式。
5) 工程中常見的包組織形式及創建者模式在其中的使用。
6) 資源庫系統:低耦合的設計要點。
7) 信息抽取系統:不要死板地套用3層/4層結構,系統中低耦合設計要點。
8) 保存Html文檔:高內聚的指導意義。
9) 對長函數的處理:控制者模式。
10) Socket編程:控制者模式舉例。
11) 角色設計:用間接模式來處理不斷變化的加密需求。
4. 面向對象設計中的經驗原則介紹(20條)
1) 當類包含多于6個數據成員時,可以把邏輯相關的數據成員劃分為一組,然后用一個新的包含類去包含這一組成員。 等等。
第二單元:靈活使用GOF設計模式避免走彎路
1.常用模式
模板方式模式、適配器模式、工廠方式模式、抽象工廠模式、策略模式、橋接模式、觀察者模式、命令模式、裝飾模式等。
2.需要背下來的定式――從實際中總結軟件設計中的常見用法
1) 用策略 / 橋接 / 訪問者模式作為中心骨架。
2) 用工廠 / 抽象工廠模式進行組裝。
3) 用命令模式處理事務。
3. 模式案例分析:
1) 練習及分析:WDL解析系統:
a) 初始設計的缺陷分析。
b) 用模式重構:外觀模式實現智能接口。
c) 橋接模式處理多對多的變化。
d) 模板方法模式統一流程。
e) 抽象工廠模式組織使用方案。
f) 單例模式的典型運用。
g) 適配器模式用于組織第3方模塊。
2) ERO系統的設計分析:不能套用模式的場合。
a) 典型場合下的典型設計。
b) 深入分析后的領悟。
c) 按工程實際進行設計,而非套用模式。
3) 薪酬系統:
a) 從需求中做的抽象。
b) 橋接模式的典型運用。
c) 策略的選擇:抽象工廠模式組織使用。
4) 練習:貨運系統:
a) 策略模式的典型運用。
b) 抽象工廠模式的運用。
c) 對本系統中的常見錯誤設計分析,領悟策略模式的要點。
3.GOF高級話題討論:
拋棄眾多的原則、模式,看問題的本質:設計模式的實用分類及運用。
模式的高級運用分析:
1) 對間接類模式的本質分析。
2) 對多對多類型模式的本質分析。
3) 對命令模式的本質分析。
4) 對主體-附加類模式的本質分析。
5) 設計模式其實不難!
第三單元:用UML輔助系統分析與設計
1.UML中的常見疑難問題辨析
1. 用例圖:UseCase的本質討論。
2. 類設計
案例分析:
1) 搜索引擎中的建模:依賴關系、關聯關系辨析
2) 商場收銀系統中的類設計:建模為屬性 / 類 / 基類-派生類 / 策略模式的抉擇。
3) 雜志訂閱系統中的類設計。
4) 汽車銷售系統中的類設計。
3. 其它辨析:略
2.借鑒RUP的設計過程。
邊界類、實體類、控制類的設計要點。
案例分析:
1. 復合文件編輯系統:
系統設計中的常見問題。
2. WDL文件解析系統:
初始設計的問題分析。
第四單元:對不良代碼的重構
1. 常見的不良代碼:
重復的代碼、過長的函數、過大的類、過長的參數列表、發散式變化、分散的修改、偽面向對象的調用、數據泥團、基本類型的誤用、switch-case結構的誤用、平行繼承體系、過薄的類、只有局部意義的成員變量、過度耦合的消息鏈、過薄的中間對象、緊耦合類、相似的類、只有數據的類、濫用類的繼承關系
2. 對代碼與結構重構的實際運用:
1) 結構不良的系統的典型表現。
2) 劃分邏輯層次。
3) 把整理好的模塊劃歸不同的邏輯層。
4) 提取控制類 + 純虛構類,整理流程。
5) 整理模塊間、層間的消息通知機制。
6) 數據層的考慮。
7) 運用命令模式等,重構主要的函數調用。
第五單元:框架搭建及實例分析
工程中常見的架構風格及案例討論:
1. 系統軟件:
分層(Layer)、管道和過濾器(Pipes and Filters)、黑板(Blackboard)
1) 數據采集系統:用分層組織系統的設計。
2) 搜索系統:用分層組織系統的設計。
3) 信息分析系統:管道過濾器的實際使用。
4) 信息分析系統:黑板模式的實際使用。
5) 人工智能系統:黑板模式的實際使用。
2. 分布式軟件:
1) 討論:異構系統間的通訊模式:經紀人(Broker)的典型運用場景。
2) 客戶/服務器(Client/Server)模式。
3) 點對點(Peer to Peer)模式。
3. 交互式軟件:
1) MVC模式的具體運用:圖像模板編輯工具中的典型運用。
2) 顯示-抽象-控制(PAC).
第六單元:案例分析:略
|
|
備注 |
|
課程對象:具有1-3年編程經驗的程序員、項目經理
課程時間:12月5-6日
培訓費用:1800元/人
報名須知:請認真填寫《報名回執表》,并經單位確認后,發送傳真或電子郵件至聯系人。
|
|
提交時間 |
2009/11/24 0:00:48
|
聯系方法 |
O1O-8243115O |
E_mail |
30989665@QQ.com - 下載報名表.DOC |