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