課程簡介
本次課程,涵蓋了工程師必知必會的一些基本設計原則、模式與最佳實踐。比如SOLID原則,它們是一組旨在幫助開發(fā)易于維護的軟件的原則集,包括:單一職責原則 (SRP)、開閉原則(OCP)、里氏替換原則(LSP)、接口隔離原則(ISP)、依賴倒置原則(DIP)。同時,Java中的23種設計模式也非常重要,本課程會挑選部分典型常用的模式進行深入講解和演示。另外,高質量代碼的持續(xù)迭代離不開合理的測試與重構技巧。以測試為例,拋開時間因素,大家經(jīng)常遇到測試粒度不好把控、測試代碼懈于維護、測試端點侵入式太強等問題,這就需要對測試有一個更好的認知,通過認知來指導行動,TDD+OOP的理念能讓編寫測試變成一個無負擔的工作。重構方面,實際上考察的是工程師的綜合能力,比如說重構時機的把握,設計原則/模式在重構中的作用,編寫可維護性測試代碼對重構的意義等。
目標收益
培訓對象
課程大綱
第一單元 設計原則與模式(3.5h)【該單元介紹常見原則與模式(含編碼實操)】 |
設計模式發(fā)展史 編程語言的變遷及模式的改變 過程式、OOP及函數(shù)式 設計模式基本原則 設計模式關注哪些問題 單一職責原則及案例分析 開閉原則及案例分析 里氏替換原則及案例分析 接口隔離原則及案例分析 依賴倒置原則及案例分析 設計模式基本分類 代碼級設計模式 架構級設計模式 設計模式應用案例 工廠模式及在現(xiàn)代框架中的應用 建造者模式及常見代碼案例 代理模式在日??蚣苤械膽冒咐?br/>其他設計模式在解耦中的常見用法 |
第二單元 項目驅動式的最佳開發(fā)實踐(6.5h)【該單元將會以《Real-World Software Development: A Project-Driven Guide to Fundamentals in Java》為藍本,逐步將常見的編碼準則、模式及迭代實踐融入項目開發(fā)中,完全覆蓋實際項目開發(fā)中產(chǎn)生的擴展性、維護性等問題?!? |
理解常見編碼原則:案例之銀行賬單分析器 體現(xiàn)KISS原則 代碼可維護性與反模式 單一職責(SRP) 類級別內聚 如何重構:支持處理不同格式 異常的模式與反模式 理解類層次關系:文檔管理系統(tǒng) 理解領域對象 類層次結構與行為設計 里氏替換(LSP) 編寫良好測試代碼 理解存儲庫模式與解耦:案例之信息系統(tǒng) 持久性和存儲庫(repository)模式 嘗試使用函數(shù)式編程 DI和IOC解決依賴問題 |
第三單元 高質量代碼之:重構與測試(2h)【該單元介紹測試驅動開發(fā)、可維護性測試代碼與重構落地實踐。】 |
編寫可測試性代碼 單元測試的意義 如何編寫正確的單元測試 如何編寫高質量可測性代碼 重構策略與落地實踐 重構目的與時機 重構方法及實操 案例:從開發(fā)、測試到重構 |
第四單元 總結與討論【總結、討論及答疑解惑】 |
話題:開發(fā)過程中的常見問題及應對策略 要點:梳理需求、領域建模、面對對象設計、常用輔助工具 |
第一單元 設計原則與模式(3.5h)【該單元介紹常見原則與模式(含編碼實操)】 設計模式發(fā)展史 編程語言的變遷及模式的改變 過程式、OOP及函數(shù)式 設計模式基本原則 設計模式關注哪些問題 單一職責原則及案例分析 開閉原則及案例分析 里氏替換原則及案例分析 接口隔離原則及案例分析 依賴倒置原則及案例分析 設計模式基本分類 代碼級設計模式 架構級設計模式 設計模式應用案例 工廠模式及在現(xiàn)代框架中的應用 建造者模式及常見代碼案例 代理模式在日常框架中的應用案例 其他設計模式在解耦中的常見用法 |
第二單元 項目驅動式的最佳開發(fā)實踐(6.5h)【該單元將會以《Real-World Software Development: A Project-Driven Guide to Fundamentals in Java》為藍本,逐步將常見的編碼準則、模式及迭代實踐融入項目開發(fā)中,完全覆蓋實際項目開發(fā)中產(chǎn)生的擴展性、維護性等問題。】 理解常見編碼原則:案例之銀行賬單分析器 體現(xiàn)KISS原則 代碼可維護性與反模式 單一職責(SRP) 類級別內聚 如何重構:支持處理不同格式 異常的模式與反模式 理解類層次關系:文檔管理系統(tǒng) 理解領域對象 類層次結構與行為設計 里氏替換(LSP) 編寫良好測試代碼 理解存儲庫模式與解耦:案例之信息系統(tǒng) 持久性和存儲庫(repository)模式 嘗試使用函數(shù)式編程 DI和IOC解決依賴問題 |
第三單元 高質量代碼之:重構與測試(2h)【該單元介紹測試驅動開發(fā)、可維護性測試代碼與重構落地實踐。】 編寫可測試性代碼 單元測試的意義 如何編寫正確的單元測試 如何編寫高質量可測性代碼 重構策略與落地實踐 重構目的與時機 重構方法及實操 案例:從開發(fā)、測試到重構 |
第四單元 總結與討論【總結、討論及答疑解惑】 話題:開發(fā)過程中的常見問題及應對策略 要點:梳理需求、領域建模、面對對象設計、常用輔助工具 |