課程費(fèi)用

5800.00 /人

課程時(shí)長(zhǎng)

2

成為教練

課程簡(jiǎn)介

一個(gè)背景:軟件產(chǎn)品化
一個(gè)中心:可擴(kuò)展設(shè)計(jì)
一套實(shí)踐:拉通需求、設(shè)計(jì)和代碼,讓“需求的變更”變成“代碼的擴(kuò)充”

目標(biāo)收益

一個(gè)背景:軟件產(chǎn)品化
一個(gè)中心:可擴(kuò)展設(shè)計(jì)
一套實(shí)踐:拉通需求、設(shè)計(jì)和代碼,讓“需求的變更”變成“代碼的擴(kuò)充”

培訓(xùn)對(duì)象

1.想聽(tīng)架構(gòu)課程的所有學(xué)員,包括架構(gòu)師、技術(shù)經(jīng)理、開(kāi)發(fā)高手、開(kāi)發(fā)骨干
2.想從重復(fù)做項(xiàng)目,過(guò)渡到做產(chǎn)品的團(tuán)隊(duì)

課程大綱

Big Picture——產(chǎn)品化:誤區(qū)與真相 產(chǎn)品化,就是死磕“可擴(kuò)展”
? 可擴(kuò)展的實(shí)質(zhì):需求有變更,代碼可方便擴(kuò)充
? 遠(yuǎn)離代碼不行:代碼可擴(kuò)充?架構(gòu)設(shè)計(jì)是條件,詳細(xì)設(shè)計(jì)是關(guān)鍵

成功的兩個(gè)條件和兩個(gè)關(guān)鍵
? 【條件一】將產(chǎn)品擴(kuò)展壓力,捕捉為需求
? 【條件二】架構(gòu)要穩(wěn)定,即代碼擴(kuò)充時(shí)架構(gòu)不變
? 【關(guān)鍵一】模塊間接口是隔離模塊、使模塊可擴(kuò)展的關(guān)鍵
? 【關(guān)鍵二】模塊實(shí)現(xiàn)是否重用與可變分離,是第二個(gè)關(guān)鍵
【需求篇】 產(chǎn)品擴(kuò)展壓力,如何盡早捕捉為需求?

設(shè)計(jì)產(chǎn)品化軟件,洞察需求變更的幾點(diǎn)規(guī)律
1. 什么需求沒(méi)變?
2. 什么需求在變?
3. 分析和識(shí)別需求變更的實(shí)際技巧


設(shè)計(jì)產(chǎn)品化軟件,可這么加強(qiáng)需求文檔
1. 分析: 《SRS》案例一 vs. 《SRS》案例二
2. 練習(xí):學(xué)員將需求的變更,定義到這兩份文檔中
主要收獲:體會(huì)《SRS》的變更包容力不同
主要收獲:長(zhǎng)期以來(lái)“輸入-處理-輸出”式需求的弊病
主要收獲:專業(yè)的話,用例技術(shù)這么用

分析、識(shí)別需求變更實(shí)戰(zhàn)
1. 小組任務(wù):應(yīng)用上述技巧,分析和識(shí)別功能變更
2. 小組提交:xxx組《用例圖 + 用例規(guī)約》
3. 小組對(duì)標(biāo):老師提供的《用例圖 + 用例規(guī)約》
【架構(gòu)篇】 為支持?jǐn)U展,產(chǎn)品化的架構(gòu)必須穩(wěn)定!
設(shè)計(jì)師劃分模塊時(shí),代碼結(jié)構(gòu)的全局劃分方法
1. 從模式開(kāi)始——巧妙的“五橫一縱”分層模式
2. 模塊劃分——覆蓋上下文圖定義的接口需求
3. 模塊劃分——覆蓋功能樹(shù)、用例定義的功能需求
3.1. 起步:分析用例規(guī)約,識(shí)別實(shí)現(xiàn)用例需要哪些類
3.2. 后續(xù):協(xié)作設(shè)計(jì),即用序列圖、協(xié)作圖串起這些類
3.3. ……即運(yùn)用用例驅(qū)動(dòng)設(shè)計(jì)思維

專項(xiàng)練習(xí)
1. 用例驅(qū)動(dòng)
2. 到底是“用例?模塊?類”還是“用例?類?模塊”

設(shè)計(jì)師劃分模塊時(shí),注意幾個(gè)基本原則
1. 通用-專用分離:提煉應(yīng)用無(wú)關(guān)的Library、或選擇三方庫(kù)
2. 通用-專用分離:機(jī)制與策略分離,開(kāi)發(fā)或選擇Framework
3. 隔離外部交互:僅UI層“知道”操作細(xì)節(jié)和展現(xiàn)格式
4. 隔離外部交互:僅SI層“知道”和外部系統(tǒng)通信的細(xì)節(jié)
5. 隔離外部交互:僅DM層“知道”數(shù)據(jù)存儲(chǔ)格式

設(shè)計(jì)師劃分模塊時(shí),可參考的優(yōu)秀范例一則
1. 著名開(kāi)源產(chǎn)品套件——Mumble
主要收獲:模塊的劃分、通用庫(kù)的提煉、三方框架…

實(shí)戰(zhàn)演練
1. 任務(wù):模塊劃分,必須覆蓋代碼結(jié)構(gòu)全局、不能漏模塊
2. 貫穿案例推進(jìn)……
【詳細(xì)設(shè)計(jì)上】 承載產(chǎn)品功能的代碼模塊,重用與可變分離!
設(shè)計(jì)師設(shè)計(jì)模塊時(shí),利用好OO Package結(jié)構(gòu)規(guī)律
1. 提供中心控制類,不要暴漏一堆小類
2. 接口類與實(shí)現(xiàn)類分離
3. 通用實(shí)現(xiàn)類與擴(kuò)展實(shí)現(xiàn)類分離
4. ……


如何應(yīng)用上述結(jié)構(gòu),包容需求變更
1. 分析需求變更,擴(kuò)充/增加/改變 用例規(guī)約
2. 分析對(duì)設(shè)計(jì)的影響
a) 增加了Optional Feature (最常見(jiàn))
b) 改變了Function Point
c) 改變了Process Flow
3. 如何設(shè)計(jì)合理的OO Package支持上門三種變更

設(shè)計(jì)師設(shè)計(jì)模塊時(shí),可參考的優(yōu)秀范例二則
1. 一個(gè)通用庫(kù)——類的組織
主要收獲:接口分離、提供中心控制類、可擴(kuò)展支持
2. 著名開(kāi)源產(chǎn)品——類的組織
主要收獲:抽象領(lǐng)域概念的提煉、可擴(kuò)展支持

過(guò)關(guān)演練
1. 分析材料,熟悉設(shè)計(jì)要求
2. 設(shè)計(jì)一個(gè)通用模塊,必須可擴(kuò)展……
【詳細(xì)設(shè)計(jì)下】 設(shè)計(jì)松耦合、可擴(kuò)展的模塊接口 設(shè)計(jì)師設(shè)計(jì)接口時(shí),考慮的三件事兒
1. 技術(shù)選擇:接口設(shè)計(jì)容易?做漂亮最難!
2. 機(jī)制選擇:調(diào)用/回調(diào)/同步/異步/輪詢/超時(shí)
3. 格式定義:函數(shù)風(fēng)格 vs.報(bào)文或消息風(fēng)格

設(shè)計(jì)師設(shè)計(jì)接口時(shí),可參考的優(yōu)秀范例幾則
1. 某通用產(chǎn)品——漂亮的封裝、方便的配置
主要收獲:圍繞Domain Type定義模塊的核心接口
主要收獲:在核心接口基礎(chǔ)上,可定義便捷接口
注?英文術(shù)語(yǔ)為Core Interface、Convenience Interface
2. 某平臺(tái)接口分析——既能跨平臺(tái)又方便調(diào)用?
主要收獲:跨平臺(tái)協(xié)議 + 便于二次開(kāi)發(fā)的API
1. MFC、Swing等API設(shè)計(jì)對(duì)比——更靈活的接口風(fēng)格
主要收獲:Message在接口設(shè)計(jì)中的作用
主要收獲:Callback回調(diào)、及“注冊(cè)-回調(diào)”接口機(jī)制

設(shè)計(jì)師設(shè)計(jì)接口時(shí),這些經(jīng)驗(yàn)可以用
1. 基于代碼:專項(xiàng)練習(xí)一
2. 基于代碼:專項(xiàng)練習(xí)二
3. 基于代碼:專項(xiàng)練習(xí)三
4. 原則與“坑”總結(jié)

實(shí)戰(zhàn)演練
1. 任務(wù)1:接口的命令化(Command)支持可擴(kuò)展
2. 任務(wù)2:讓接口包含回調(diào)(Callback)使模塊通用化
3. 貫穿案例設(shè)計(jì)推進(jìn)……
Big Picture——產(chǎn)品化:誤區(qū)與真相
產(chǎn)品化,就是死磕“可擴(kuò)展”
? 可擴(kuò)展的實(shí)質(zhì):需求有變更,代碼可方便擴(kuò)充
? 遠(yuǎn)離代碼不行:代碼可擴(kuò)充?架構(gòu)設(shè)計(jì)是條件,詳細(xì)設(shè)計(jì)是關(guān)鍵

成功的兩個(gè)條件和兩個(gè)關(guān)鍵
? 【條件一】將產(chǎn)品擴(kuò)展壓力,捕捉為需求
? 【條件二】架構(gòu)要穩(wěn)定,即代碼擴(kuò)充時(shí)架構(gòu)不變
? 【關(guān)鍵一】模塊間接口是隔離模塊、使模塊可擴(kuò)展的關(guān)鍵
? 【關(guān)鍵二】模塊實(shí)現(xiàn)是否重用與可變分離,是第二個(gè)關(guān)鍵
【需求篇】 產(chǎn)品擴(kuò)展壓力,如何盡早捕捉為需求?


設(shè)計(jì)產(chǎn)品化軟件,洞察需求變更的幾點(diǎn)規(guī)律
1. 什么需求沒(méi)變?
2. 什么需求在變?
3. 分析和識(shí)別需求變更的實(shí)際技巧


設(shè)計(jì)產(chǎn)品化軟件,可這么加強(qiáng)需求文檔
1. 分析: 《SRS》案例一 vs. 《SRS》案例二
2. 練習(xí):學(xué)員將需求的變更,定義到這兩份文檔中
主要收獲:體會(huì)《SRS》的變更包容力不同
主要收獲:長(zhǎng)期以來(lái)“輸入-處理-輸出”式需求的弊病
主要收獲:專業(yè)的話,用例技術(shù)這么用

分析、識(shí)別需求變更實(shí)戰(zhàn)
1. 小組任務(wù):應(yīng)用上述技巧,分析和識(shí)別功能變更
2. 小組提交:xxx組《用例圖 + 用例規(guī)約》
3. 小組對(duì)標(biāo):老師提供的《用例圖 + 用例規(guī)約》
【架構(gòu)篇】 為支持?jǐn)U展,產(chǎn)品化的架構(gòu)必須穩(wěn)定!

設(shè)計(jì)師劃分模塊時(shí),代碼結(jié)構(gòu)的全局劃分方法
1. 從模式開(kāi)始——巧妙的“五橫一縱”分層模式
2. 模塊劃分——覆蓋上下文圖定義的接口需求
3. 模塊劃分——覆蓋功能樹(shù)、用例定義的功能需求
3.1. 起步:分析用例規(guī)約,識(shí)別實(shí)現(xiàn)用例需要哪些類
3.2. 后續(xù):協(xié)作設(shè)計(jì),即用序列圖、協(xié)作圖串起這些類
3.3. ……即運(yùn)用用例驅(qū)動(dòng)設(shè)計(jì)思維

專項(xiàng)練習(xí)
1. 用例驅(qū)動(dòng)
2. 到底是“用例?模塊?類”還是“用例?類?模塊”

設(shè)計(jì)師劃分模塊時(shí),注意幾個(gè)基本原則
1. 通用-專用分離:提煉應(yīng)用無(wú)關(guān)的Library、或選擇三方庫(kù)
2. 通用-專用分離:機(jī)制與策略分離,開(kāi)發(fā)或選擇Framework
3. 隔離外部交互:僅UI層“知道”操作細(xì)節(jié)和展現(xiàn)格式
4. 隔離外部交互:僅SI層“知道”和外部系統(tǒng)通信的細(xì)節(jié)
5. 隔離外部交互:僅DM層“知道”數(shù)據(jù)存儲(chǔ)格式

設(shè)計(jì)師劃分模塊時(shí),可參考的優(yōu)秀范例一則
1. 著名開(kāi)源產(chǎn)品套件——Mumble
主要收獲:模塊的劃分、通用庫(kù)的提煉、三方框架…

實(shí)戰(zhàn)演練
1. 任務(wù):模塊劃分,必須覆蓋代碼結(jié)構(gòu)全局、不能漏模塊
2. 貫穿案例推進(jìn)……
【詳細(xì)設(shè)計(jì)上】 承載產(chǎn)品功能的代碼模塊,重用與可變分離!

設(shè)計(jì)師設(shè)計(jì)模塊時(shí),利用好OO Package結(jié)構(gòu)規(guī)律
1. 提供中心控制類,不要暴漏一堆小類
2. 接口類與實(shí)現(xiàn)類分離
3. 通用實(shí)現(xiàn)類與擴(kuò)展實(shí)現(xiàn)類分離
4. ……


如何應(yīng)用上述結(jié)構(gòu),包容需求變更
1. 分析需求變更,擴(kuò)充/增加/改變 用例規(guī)約
2. 分析對(duì)設(shè)計(jì)的影響
a) 增加了Optional Feature (最常見(jiàn))
b) 改變了Function Point
c) 改變了Process Flow
3. 如何設(shè)計(jì)合理的OO Package支持上門三種變更

設(shè)計(jì)師設(shè)計(jì)模塊時(shí),可參考的優(yōu)秀范例二則
1. 一個(gè)通用庫(kù)——類的組織
主要收獲:接口分離、提供中心控制類、可擴(kuò)展支持
2. 著名開(kāi)源產(chǎn)品——類的組織
主要收獲:抽象領(lǐng)域概念的提煉、可擴(kuò)展支持

過(guò)關(guān)演練
1. 分析材料,熟悉設(shè)計(jì)要求
2. 設(shè)計(jì)一個(gè)通用模塊,必須可擴(kuò)展……
【詳細(xì)設(shè)計(jì)下】 設(shè)計(jì)松耦合、可擴(kuò)展的模塊接口
設(shè)計(jì)師設(shè)計(jì)接口時(shí),考慮的三件事兒
1. 技術(shù)選擇:接口設(shè)計(jì)容易?做漂亮最難!
2. 機(jī)制選擇:調(diào)用/回調(diào)/同步/異步/輪詢/超時(shí)
3. 格式定義:函數(shù)風(fēng)格 vs.報(bào)文或消息風(fēng)格

設(shè)計(jì)師設(shè)計(jì)接口時(shí),可參考的優(yōu)秀范例幾則
1. 某通用產(chǎn)品——漂亮的封裝、方便的配置
主要收獲:圍繞Domain Type定義模塊的核心接口
主要收獲:在核心接口基礎(chǔ)上,可定義便捷接口
注?英文術(shù)語(yǔ)為Core Interface、Convenience Interface
2. 某平臺(tái)接口分析——既能跨平臺(tái)又方便調(diào)用?
主要收獲:跨平臺(tái)協(xié)議 + 便于二次開(kāi)發(fā)的API
1. MFC、Swing等API設(shè)計(jì)對(duì)比——更靈活的接口風(fēng)格
主要收獲:Message在接口設(shè)計(jì)中的作用
主要收獲:Callback回調(diào)、及“注冊(cè)-回調(diào)”接口機(jī)制

設(shè)計(jì)師設(shè)計(jì)接口時(shí),這些經(jīng)驗(yàn)可以用
1. 基于代碼:專項(xiàng)練習(xí)一
2. 基于代碼:專項(xiàng)練習(xí)二
3. 基于代碼:專項(xiàng)練習(xí)三
4. 原則與“坑”總結(jié)

實(shí)戰(zhàn)演練
1. 任務(wù)1:接口的命令化(Command)支持可擴(kuò)展
2. 任務(wù)2:讓接口包含回調(diào)(Callback)使模塊通用化
3. 貫穿案例設(shè)計(jì)推進(jìn)……

課程費(fèi)用

5800.00 /人

課程時(shí)長(zhǎng)

2

預(yù)約體驗(yàn)票 我要分享

近期公開(kāi)課推薦

近期公開(kāi)課推薦

活動(dòng)詳情

提交需求