Java重構與TDD測試驅動開發實際案例一-陳勇-專題視訊課程
阿新 • • 發佈:2019-01-08
Java重構與TDD測試驅動開發實際案例一—2117人已學習
課程介紹
本課程將高深的重構與TDD理論埋藏在一個實際案例中,深入淺出地演示了重構與TDD的完整步驟。 在這個真實的案例中,一個銀行專案的2000多行的模組,終被重構為僅有160多行,並實現了單元測試級別的自動化測試。實際重構耗時1天,本課程將1天的時間用近百個片段重現出來,並增加了一些新功能來演示更多重構所需的技術。
課程收益
在實戰中學習重構所需的封裝、繼承、多型、泛型等方法; 優化自動化測試程式碼(例項中每個測試用例平均僅需要1行程式碼),提升TDD和自動化測試的效率。 掌握編寫精美程式碼的思想。
講師介紹
陳勇 更多講師課程
具有豐富的工程技術與專案管理實踐經驗,從其程式設計師、專案經理、CMMI/FPA功能點估算/敏捷諮詢師、事業部總監、副總經理等各種技術與管理崗位獲得的一手經驗,令其可以站在企業管理者的高度,以更廣的視角來理解敏捷開發,並能配合和推動非研發部門協作推廣敏捷。
課程大綱
1.01-010 段子:何時重構? 4:23
2.01-020 案例1:背景介紹 3:15
3.01-030 案例1:1030行的函式 4:53
4.01-040 案例1:補充背景 4:22
5.01-050 案例1:不良實現的數值存放 4:22
6.01-060 案例1:不良實現的數值比較 4:57
7. 01-070 重構第1原則:TDD 3:37
8.01-080 案例1.1:泛型存放資料 4:48
9.01-090 案例1.1:泛型setValue() 1:49
10.01-100 重構第2原則:使用語言新特性 3:22
11.01-110 重構第3原則:使用智慧的設計 3:39
12.01-120 案例1.1:比較Integer與Integer 1:13
13.01-130 案例1.1:比較Integer與BigInteger 2:29
14.01-140 案例1.1:比較Integer, Float, String 4:12
15.01-150 案例1.1:比較Integer與String 1:35
16.01-160 案例1.1:比較Float與Float 1:29
17.01-170 案例1.1:比較Integer與Float 0:45
18.01-180 案例1:比較Integer與BigDecimal 3:53
19.01-190 自動化測試第1原則:分離測試方法 3:30
20.01-200 案例1.1:toBigDecimal後比較BigDecimal與BigDecimal 3:04
21.01-210 案例1.1:BigDecimal的比較原理 2:09
22.01-220 案例1.1:BigDecimal.stripTraillingZeros 1:36
23.01-230 火星人諺語——天無絕人之路 4:37
24.01-240 如何確認“這是實現不了的” 4:32
25.01-250 案例1.1:所有數字利用BigDecimal進行比較 4:49
26.01-260 案例1.1:簡化單個測試用例程式碼行數 3:50
27.01-270 案例1.1:批量存放測試用例 4:49
28.01-280 自動化測試第2原則:效率優先 4:38
29.01-290 案例1.1:封裝測試用例 4:50
30.01-300 案例1.1:使用封裝的測試用例 2:37
31.01-310 案例1.1:批量建立測試用例 4:59
32.01-320 案例1.1:總結 5:00
33.01-330 案例1.2:Boolean無法toBigDecimal 3:32
34.01-340 案例1.2:使用三元表示式的比較 4:38
35.01-350 案例1.2:引入FormulaValueNumber和Bounded Type 3:35
36.01-360 案例1.2:比較Boolean與String 1:54
37.01-370 案例1.2:比較Datetime與Datetime以及String 3:59
38.01-380 案例1.2:初次啟用“小於”操作 4:19
39.01-390 案例1.2:認識Camparable 4:36
40.01-400 案例1.2:使用campareTo實現小於操作 3:31
41.01-410 案例1.2:使用campareTo實現其他操作 4:41
42.01-420 案例1.2:優化日誌中的操作符 4:18
43.01-430 案例1.2:反向操作符的if else if實現方法 4:56
44.01-450 案例1.2:反向操作符的三元表示式實現方法 4:59
45.01-460 案例1.2:反向操作符的無else實現方法 4:17
46.01-470 案例1.2:反向操作符的Java9 Map實現方法 4:47
47.01-480 火星人諺語:不要觸犯天條 4:41
48.01-490 火星人諺語:只編寫精美程式碼 4:51
49.01-500 資料與程式碼分離的好處:程式碼質量高 4:26
50.01-510 資料與程式碼分離的好處:更好的複用 2:26
51.01-520 火星人諺語:程式設計是一門藝術 4:45
52.01-530 案例1.2:反向操作符的最終測試效果 2:04
53.01-540 案例1.3 ValueString在左側時的困境 3:58
54.01-550 案例1.3 使用類工廠生成不同的Formula 4:52
55.01-560 案例1.3 使用簡單的分支來判斷是否是Number 3:07
56.01-570 案例1.3 判斷一個String是否可以被轉換為BigDecimal 2:48
57.01-580 案例1.3 利用多型@Override來比較String與Ingeger 3:19
58.01-590 案例1.3 用工廠生產FormulaBoolean 3:52
59.01-660 案例1.3 用工廠生產FormulaDatetime 3:51
60.01-670 案例1.3 用統一的canBeConvertToX優化實現 4:27
61.01-680 多型第1個優勢:分散並簡化程式碼 4:51
62.01-690 多型第2個優勢:程式碼易於維護 3:02
63.01-700 案例1.3 用組合代替繼承 3:33
64.01-710 案例1.3 用工廠生產FormulaComparator 3:45
65.01-720 案例1.3 實現三種FormulaComparator 3:34
66.01-730 案例1.3 測試三種FormulaComparator 0:33
67.01-740 火星人諺語:寧用組合不用繼承 2:57
68.01-900-0 命名規範:類名 4:27
69.01-900-1 命名規範:變數名 2:38
70.01-900-2 命名規範:方法名 4:58
71.01-900-3 命名規範:集合名 4:57
72.01-910-1 封裝規範:方法長度限制 4:58
73.01-910-2封裝規範:用if-return消滅else 4:35
74.01-910-3封裝規範:用Map消滅else 4:50
75.01-910-4封裝規範:用泛型消滅else 2:04
76.01-910-5封裝規範:用多型消滅else 3:42
77.01-910-6封裝規範:用三元表示式消滅else 2:00
78.01-910-7封裝規範:消滅else的本質 4:48
大家可以點選【檢視詳情】檢視我的課程
課程介紹
本課程將高深的重構與TDD理論埋藏在一個實際案例中,深入淺出地演示了重構與TDD的完整步驟。 在這個真實的案例中,一個銀行專案的2000多行的模組,終被重構為僅有160多行,並實現了單元測試級別的自動化測試。實際重構耗時1天,本課程將1天的時間用近百個片段重現出來,並增加了一些新功能來演示更多重構所需的技術。
課程收益
在實戰中學習重構所需的封裝、繼承、多型、泛型等方法; 優化自動化測試程式碼(例項中每個測試用例平均僅需要1行程式碼),提升TDD和自動化測試的效率。 掌握編寫精美程式碼的思想。
講師介紹
陳勇
具有豐富的工程技術與專案管理實踐經驗,從其程式設計師、專案經理、CMMI/FPA功能點估算/敏捷諮詢師、事業部總監、副總經理等各種技術與管理崗位獲得的一手經驗,令其可以站在企業管理者的高度,以更廣的視角來理解敏捷開發,並能配合和推動非研發部門協作推廣敏捷。
課程大綱
1.01-010 段子:何時重構? 4:23
2.01-020 案例1:背景介紹 3:15
3.01-030 案例1:1030行的函式 4:53
4.01-040 案例1:補充背景 4:22
5.01-050 案例1:不良實現的數值存放 4:22
6.01-060 案例1:不良實現的數值比較 4:57
7.
8.01-080 案例1.1:泛型存放資料 4:48
9.01-090 案例1.1:泛型setValue() 1:49
10.01-100 重構第2原則:使用語言新特性 3:22
11.01-110 重構第3原則:使用智慧的設計 3:39
12.01-120 案例1.1:比較Integer與Integer 1:13
13.01-130 案例1.1:比較Integer與BigInteger 2:29
14.01-140 案例1.1:比較Integer, Float, String 4:12
15.01-150 案例1.1:比較Integer與String
16.01-160 案例1.1:比較Float與Float 1:29
17.01-170 案例1.1:比較Integer與Float 0:45
18.01-180 案例1:比較Integer與BigDecimal 3:53
19.01-190 自動化測試第1原則:分離測試方法 3:30
20.01-200 案例1.1:toBigDecimal後比較BigDecimal與BigDecimal 3:04
21.01-210 案例1.1:BigDecimal的比較原理 2:09
22.01-220 案例1.1:BigDecimal.stripTraillingZeros 1:36
23.01-230 火星人諺語——天無絕人之路 4:37
24.01-240 如何確認“這是實現不了的” 4:32
25.01-250 案例1.1:所有數字利用BigDecimal進行比較 4:49
26.01-260 案例1.1:簡化單個測試用例程式碼行數 3:50
27.01-270 案例1.1:批量存放測試用例 4:49
28.01-280 自動化測試第2原則:效率優先 4:38
29.01-290 案例1.1:封裝測試用例 4:50
30.01-300 案例1.1:使用封裝的測試用例 2:37
31.01-310 案例1.1:批量建立測試用例 4:59
32.01-320 案例1.1:總結 5:00
33.01-330 案例1.2:Boolean無法toBigDecimal 3:32
34.01-340 案例1.2:使用三元表示式的比較 4:38
35.01-350 案例1.2:引入FormulaValueNumber和Bounded Type 3:35
36.01-360 案例1.2:比較Boolean與String 1:54
37.01-370 案例1.2:比較Datetime與Datetime以及String 3:59
38.01-380 案例1.2:初次啟用“小於”操作 4:19
39.01-390 案例1.2:認識Camparable 4:36
40.01-400 案例1.2:使用campareTo實現小於操作 3:31
41.01-410 案例1.2:使用campareTo實現其他操作 4:41
42.01-420 案例1.2:優化日誌中的操作符 4:18
43.01-430 案例1.2:反向操作符的if else if實現方法 4:56
44.01-450 案例1.2:反向操作符的三元表示式實現方法 4:59
45.01-460 案例1.2:反向操作符的無else實現方法 4:17
46.01-470 案例1.2:反向操作符的Java9 Map實現方法 4:47
47.01-480 火星人諺語:不要觸犯天條 4:41
48.01-490 火星人諺語:只編寫精美程式碼 4:51
49.01-500 資料與程式碼分離的好處:程式碼質量高 4:26
50.01-510 資料與程式碼分離的好處:更好的複用 2:26
51.01-520 火星人諺語:程式設計是一門藝術 4:45
52.01-530 案例1.2:反向操作符的最終測試效果 2:04
53.01-540 案例1.3 ValueString在左側時的困境 3:58
54.01-550 案例1.3 使用類工廠生成不同的Formula 4:52
55.01-560 案例1.3 使用簡單的分支來判斷是否是Number 3:07
56.01-570 案例1.3 判斷一個String是否可以被轉換為BigDecimal 2:48
57.01-580 案例1.3 利用多型@Override來比較String與Ingeger 3:19
58.01-590 案例1.3 用工廠生產FormulaBoolean 3:52
59.01-660 案例1.3 用工廠生產FormulaDatetime 3:51
60.01-670 案例1.3 用統一的canBeConvertToX優化實現 4:27
61.01-680 多型第1個優勢:分散並簡化程式碼 4:51
62.01-690 多型第2個優勢:程式碼易於維護 3:02
63.01-700 案例1.3 用組合代替繼承 3:33
64.01-710 案例1.3 用工廠生產FormulaComparator 3:45
65.01-720 案例1.3 實現三種FormulaComparator 3:34
66.01-730 案例1.3 測試三種FormulaComparator 0:33
67.01-740 火星人諺語:寧用組合不用繼承 2:57
68.01-900-0 命名規範:類名 4:27
69.01-900-1 命名規範:變數名 2:38
70.01-900-2 命名規範:方法名 4:58
71.01-900-3 命名規範:集合名 4:57
72.01-910-1 封裝規範:方法長度限制 4:58
73.01-910-2封裝規範:用if-return消滅else 4:35
74.01-910-3封裝規範:用Map消滅else 4:50
75.01-910-4封裝規範:用泛型消滅else 2:04
76.01-910-5封裝規範:用多型消滅else 3:42
77.01-910-6封裝規範:用三元表示式消滅else 2:00
78.01-910-7封裝規範:消滅else的本質 4:48
大家可以點選【檢視詳情】檢視我的課程