開發(fā)經(jīng)理
其他
軟件設計
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

高級軟件設計訓練營

劉老師

高級系統(tǒng)架構師,敏捷技術教練

技術咨詢師,擁有10多年大型軟件系統(tǒng)研發(fā)與架構經(jīng)驗。曾服務于阿里巴巴-菜鳥網(wǎng)絡,擔任軟件架構師。

目前,供職于中興通訊技術規(guī)劃部,任高級系統(tǒng)架構師,負責AI(人工智能)平臺的架構與設計,關注深度學習領域的相關算法研究,及其系統(tǒng)架構與優(yōu)化相關工作。

擅長遺留軟件系統(tǒng)的重構與優(yōu)化,對XP(極限編程),OO(面向?qū)ο笤O計),F(xiàn)P(函數(shù)式設計),DDD(領域驅(qū)動設計),DSL(領域描述語言)等相關技術具有濃厚的興趣。

? 簡書:http://www.jianshu.com/u/49d1f3b7049e
? Github:https://github.com/horance-liu

技術咨詢師,擁有10多年大型軟件系統(tǒng)研發(fā)與架構經(jīng)驗。曾服務于阿里巴巴-菜鳥網(wǎng)絡,擔任軟件架構師。 目前,供職于中興通訊技術規(guī)劃部,任高級系統(tǒng)架構師,負責AI(人工智能)平臺的架構與設計,關注深度學習領域的相關算法研究,及其系統(tǒng)架構與優(yōu)化相關工作。 擅長遺留軟件系統(tǒng)的重構與優(yōu)化,對XP(極限編程),OO(面向?qū)ο笤O計),F(xiàn)P(函數(shù)式設計),DDD(領域驅(qū)動設計),DSL(領域描述語言)等相關技術具有濃厚的興趣。 ? 簡書:http://www.jianshu.com/u/49d1f3b7049e ? Github:https://github.com/horance-liu

課程費用

5800.00 /人

課程時長

2

成為教練

課程簡介

「高級軟件設計訓練營」是一個理論與實踐相結合的課程,闡述軟件設計的基本原則、模式與實踐的基本理論與實踐應用,重點關注演進式設計的基本過程。

目標收益

a) 「高級軟件設計訓練營」倡導整潔代碼的基本實踐,重點關注程序設計語言的最佳實踐、習慣用法及其實現(xiàn)模式的實踐與應用;
b) 「高級軟件設計訓練營」不僅包含面向?qū)ο蟮脑O計思維,也倡導函數(shù)式的設計思維;重點關注抽象,組合等通用的軟件設計技術。

培訓對象

a) 具有1年及以上工作經(jīng)驗,并期望掌握面向?qū)ο?,函?shù)式,極限編程,DSL(領域描述語言),DDD(領域驅(qū)動設計)相關技術的的研發(fā)工程師,系統(tǒng)工程師,架構師。

課程大綱

第一單元:
軟件設計綜述
一、 理論部分
1. 闡述軟件設計的基本目標、過程;
2. 闡述敏捷軟件開發(fā)的基本理念和價值觀;
3. 闡述極限編程的基本方法論;
4. 闡述演進式設計的基本理論與實踐應用。

二、 實踐部分
1. 探討研發(fā)過程存在的痛點;
2. 探討研發(fā)過程的改進方案。
第二單元
面向?qū)ο蠹夹g
一、 封裝
1. 封裝的意圖;
2. 數(shù)據(jù)VS算法
3. Tell, Don’t Ask
4. 封裝對設計的改善(示例)
- Option

二、 繼承與Mixin
1. 繼承的種類
2. 單繼承與多繼承
3. 私有繼承
4. Mixin機制

三、 多態(tài)
1. 多態(tài)的形態(tài)
2. 重載
3. 繼承多態(tài)
4. 類型多態(tài)

四、 設計模式
1. 構造型
2. 結構型
3. 行為型
4. 反模式
5. 重構與模式

五、 實踐面向?qū)ο?(FizzBuzzWhizz為例)
1. 實踐需求挖掘的基本方法與技術;
2. 實踐故事拆分的基本方法與技術;
3. 掌握TDD的基本能力;
4. 培養(yǎng)設計壞味道的基本嗅覺能力,及其重構的基本技術;
5. 培養(yǎng)設計整潔代碼的習慣;
6. 培養(yǎng)簡單設計的基本思維模式;
第三單元:
整潔代碼
一、 整潔代碼的藝術
1. 整潔代碼的思想流派
2. 童子軍規(guī)

二、 命名
1. 名副其實
2. 常見命名模式
3. 反例

三、 函數(shù)
1. 單一職責:只做一件事,并將其做好
2. 同一抽象層次
3. 無副作用
4. DRY:不要重復自己

四、 注釋
1. 糟糕的注釋
2. 必要的注釋

五、 格式
1. 縮進與排版
2. 風格
3. 模板

六、 對象
1. 信息隱藏
2. 迪米特法則

七、 異常
1. 異常VS錯誤碼
2. 資源釋放

八、 邊界
1. 隔離和控制依賴
2. 適配器
3. 倒置依賴

九、 測試
1. 整潔的測試
2. TDD三定律

十、 類
1. SOLID
2. 上帝類
第四單元:
軟件設計原則
一、 SOLID設計原則
1. SRP:單一職責
2. OCP:開放封閉
3. LSP:里氏替換
4. ISP:接口隔離
5. DIP:倒置依賴

二、 正交設計原則
1. 消除重復
2. 分離變化的原因
3. 縮小依賴范圍
4. 向穩(wěn)定的方向依賴

三、 簡單設計原則
1. 通過測試
2. 沒有重復
3. 揭示意圖
4. 沒有冗余

四、 總括
1. 局部性原則
2. 高內(nèi)聚、低耦合

五、實戰(zhàn)正交設計(以Hamcrest為例)
第一單元:
軟件設計綜述

一、 理論部分
1. 闡述軟件設計的基本目標、過程;
2. 闡述敏捷軟件開發(fā)的基本理念和價值觀;
3. 闡述極限編程的基本方法論;
4. 闡述演進式設計的基本理論與實踐應用。

二、 實踐部分
1. 探討研發(fā)過程存在的痛點;
2. 探討研發(fā)過程的改進方案。
第二單元
面向?qū)ο蠹夹g

一、 封裝
1. 封裝的意圖;
2. 數(shù)據(jù)VS算法
3. Tell, Don’t Ask
4. 封裝對設計的改善(示例)
- Option

二、 繼承與Mixin
1. 繼承的種類
2. 單繼承與多繼承
3. 私有繼承
4. Mixin機制

三、 多態(tài)
1. 多態(tài)的形態(tài)
2. 重載
3. 繼承多態(tài)
4. 類型多態(tài)

四、 設計模式
1. 構造型
2. 結構型
3. 行為型
4. 反模式
5. 重構與模式

五、 實踐面向?qū)ο?(FizzBuzzWhizz為例)
1. 實踐需求挖掘的基本方法與技術;
2. 實踐故事拆分的基本方法與技術;
3. 掌握TDD的基本能力;
4. 培養(yǎng)設計壞味道的基本嗅覺能力,及其重構的基本技術;
5. 培養(yǎng)設計整潔代碼的習慣;
6. 培養(yǎng)簡單設計的基本思維模式;
第三單元:
整潔代碼

一、 整潔代碼的藝術
1. 整潔代碼的思想流派
2. 童子軍規(guī)

二、 命名
1. 名副其實
2. 常見命名模式
3. 反例

三、 函數(shù)
1. 單一職責:只做一件事,并將其做好
2. 同一抽象層次
3. 無副作用
4. DRY:不要重復自己

四、 注釋
1. 糟糕的注釋
2. 必要的注釋

五、 格式
1. 縮進與排版
2. 風格
3. 模板

六、 對象
1. 信息隱藏
2. 迪米特法則

七、 異常
1. 異常VS錯誤碼
2. 資源釋放

八、 邊界
1. 隔離和控制依賴
2. 適配器
3. 倒置依賴

九、 測試
1. 整潔的測試
2. TDD三定律

十、 類
1. SOLID
2. 上帝類
第四單元:
軟件設計原則

一、 SOLID設計原則
1. SRP:單一職責
2. OCP:開放封閉
3. LSP:里氏替換
4. ISP:接口隔離
5. DIP:倒置依賴

二、 正交設計原則
1. 消除重復
2. 分離變化的原因
3. 縮小依賴范圍
4. 向穩(wěn)定的方向依賴

三、 簡單設計原則
1. 通過測試
2. 沒有重復
3. 揭示意圖
4. 沒有冗余

四、 總括
1. 局部性原則
2. 高內(nèi)聚、低耦合

五、實戰(zhàn)正交設計(以Hamcrest為例)

活動詳情

提交需求