💡 熱騰騰的課後感想 💡
這次重構了一組 java 學員的 legacy code, 一組 C# 學員的 legacy code.
累,但通體舒暢。
像個舞蹈家在舞台上表演完後的痛快淋漓,像開完演唱會之後的虛脫無力。
在來這次的課程以前,歷經了workshop、極速開發、coding dojo,以為好像知道了一點TDD 、好像知道如何討論測試案例與需求、好像知道如何用工具來加快腳步,在工作上也試著用TDD完成一些需求,但總覺得少了什麼
一直認為Tennis 經TDD 結束後,好像就很理所當然:Tennis 類別就長這樣、Test Case 就是這個順序
「這個測試案例很複雜、那個很簡單」對我來說一直是很抽象的描述
這些在這堂課都有一些答案
91 在講解Tennis kata時,我才知道,Tennis 類別在一開始討論測試案例時,就已經先粗略的被設計了,包含method被如何使用、參數從哪邊進去、return 什麼(這些跟情境是有關的),然後再用便利貼量化 「代碼要做什麼事或是修改才能完成這個測試案例」,然後再討論這些便利貼是否可以挪到下一個test case ,才不會為了某個案例,新增大量的code,這就是為什麼Tennis kata 是那樣被完成的
而這個設計過程就是看個人或團隊的能耐,不然最終還是會需要重構的基本功,這在後面小組的mob programming 就得到了印證:「我們都好像知道要這樣討論設計測試案例,但寫出來還是爛爛的code」,唯一跟平常工作開發的差別是至少我們已經有完整的單元測試可以讓我們繼續重構
重構的單元,91一邊講我們害怕做什麼、 會習慣想做什麼,導致哪些壞味道,一邊示範物件如何自然地高內聚、切開職責,用工具的順序怎樣可以少真的動手寫代碼
重構絕對不是改改變數名稱、隨便抽個一坨code到新的method而已,更不是照著書看到這個pattern 就要怎樣處理
最後91 再帶大家討論測試案例、類別及要做的工作事項後,開發過程就會跟寫kata 一樣非常流暢、自然,不需要最後花很多的成本去重構
總結一下這堂課
1.看到TDD 不同面向
2.壞味道
3.重構
4.好的設計跟程式能力絕對可以流暢TDD ,但一般情況是很難有完美的一次設計到好,所以重構(及單元測試)的基本能力更重要
如果對TDD 非常有興趣、疑惑,或是想了解重構,非常適合參加Joey Chen的 #TDD與持續重構 課程
同時也有4部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,TQC+Python3證照第1次(證照類別說明與102題浮點數格式化與104題圓形面積計算) 上課內容: 01_PYTHON證照類別說明(一到五類) 02_PYTHON與JAVA趨勢比較 03_PYTHON證照類別說明(六到九類) 04_ECLIPSE設計環境與相關設定 05_102題浮點數格式化...
java 參數 變數 在 吳老師教學部落格 Youtube 的最佳貼文
TQC+Python3證照第1次(證照類別說明與102題浮點數格式化與104題圓形面積計算)
上課內容:
01_PYTHON證照類別說明(一到五類)
02_PYTHON與JAVA趨勢比較
03_PYTHON證照類別說明(六到九類)
04_ECLIPSE設計環境與相關設定
05_102題浮點數格式化輸出試題說明
06_證照102題INPUT與OUT說明
07_證照102題FORAMT格式化之一
08_證照102題INPUT與FORAMT格式化之二
09_轉型用eval函數
10_證照104題圓形面積計算解題
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
TQC+Python證照目錄:
Python 第1類:基本程式設計
技能內容:變數與常數、指定敘述、標準輸入輸出、運算式、算術運算子、數學函式的應用、格式化的輸出Python 第2類:選擇敘述
技能內容:if、if...else、if…elif
Python 第3類:迴圈敘述
技能內容:while、for…in
Python 第4類:進階控制流程
技能內容:常用的控制結構、條件判斷、迴圈
Python 第5類:函式(Function)
技能內容:函式使用、傳遞參數、回傳資料、內建函式、區域變數與全域變數
Python 第6類:串列(List)的運作(一維、二維以及多維)
技能內容:串列的建立、串列的函式、串列參數傳遞、串列應用
Python 第7類:數組(Tuple)、集合(Set)以及詞典(Dictionary)
技能內容:數組、集合、詞典的建立、運作及應用
Python 第8類:字串(String)的運作
技能內容:字串的建立、字串的庫存函式、字串的應用
Python 第9類:檔案與異常處理
技能內容:文字I/O、檔案的建立、寫入資料與讀取資料、二進位I/O、編碼(Encoding)、異常處理
吳老師 108/12/27
EXCEL,VBA,Python,證照,東吳,文化推廣部,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境
java 參數 變數 在 吳老師教學部落格 Youtube 的最讚貼文
TQC+Python3證照第1次(證照類別說明與102題浮點數格式化與104題圓形面積計算)
上課內容:
01_PYTHON證照類別說明(一到五類)
02_PYTHON與JAVA趨勢比較
03_PYTHON證照類別說明(六到九類)
04_ECLIPSE設計環境與相關設定
05_102題浮點數格式化輸出試題說明
06_證照102題INPUT與OUT說明
07_證照102題FORAMT格式化之一
08_證照102題INPUT與FORAMT格式化之二
09_轉型用eval函數
10_證照104題圓形面積計算解題
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
TQC+Python證照目錄:
Python 第1類:基本程式設計
技能內容:變數與常數、指定敘述、標準輸入輸出、運算式、算術運算子、數學函式的應用、格式化的輸出Python 第2類:選擇敘述
技能內容:if、if...else、if…elif
Python 第3類:迴圈敘述
技能內容:while、for…in
Python 第4類:進階控制流程
技能內容:常用的控制結構、條件判斷、迴圈
Python 第5類:函式(Function)
技能內容:函式使用、傳遞參數、回傳資料、內建函式、區域變數與全域變數
Python 第6類:串列(List)的運作(一維、二維以及多維)
技能內容:串列的建立、串列的函式、串列參數傳遞、串列應用
Python 第7類:數組(Tuple)、集合(Set)以及詞典(Dictionary)
技能內容:數組、集合、詞典的建立、運作及應用
Python 第8類:字串(String)的運作
技能內容:字串的建立、字串的庫存函式、字串的應用
Python 第9類:檔案與異常處理
技能內容:文字I/O、檔案的建立、寫入資料與讀取資料、二進位I/O、編碼(Encoding)、異常處理
吳老師 108/12/27
EXCEL,VBA,Python,證照,東吳,文化推廣部,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境
java 參數 變數 在 吳老師教學部落格 Youtube 的最讚貼文
TQC+Python3證照第1次(證照類別說明與102題浮點數格式化與104題圓形面積計算)
上課內容:
01_PYTHON證照類別說明(一到五類)
02_PYTHON與JAVA趨勢比較
03_PYTHON證照類別說明(六到九類)
04_ECLIPSE設計環境與相關設定
05_102題浮點數格式化輸出試題說明
06_證照102題INPUT與OUT說明
07_證照102題FORAMT格式化之一
08_證照102題INPUT與FORAMT格式化之二
09_轉型用eval函數
10_證照104題圓形面積計算解題
完整教學
http://goo.gl/aQTMFS
吳老師教學論壇
http://www.tqc.idv.tw/
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
TQC+Python證照目錄:
Python 第1類:基本程式設計
技能內容:變數與常數、指定敘述、標準輸入輸出、運算式、算術運算子、數學函式的應用、格式化的輸出Python 第2類:選擇敘述
技能內容:if、if...else、if…elif
Python 第3類:迴圈敘述
技能內容:while、for…in
Python 第4類:進階控制流程
技能內容:常用的控制結構、條件判斷、迴圈
Python 第5類:函式(Function)
技能內容:函式使用、傳遞參數、回傳資料、內建函式、區域變數與全域變數
Python 第6類:串列(List)的運作(一維、二維以及多維)
技能內容:串列的建立、串列的函式、串列參數傳遞、串列應用
Python 第7類:數組(Tuple)、集合(Set)以及詞典(Dictionary)
技能內容:數組、集合、詞典的建立、運作及應用
Python 第8類:字串(String)的運作
技能內容:字串的建立、字串的庫存函式、字串的應用
Python 第9類:檔案與異常處理
技能內容:文字I/O、檔案的建立、寫入資料與讀取資料、二進位I/O、編碼(Encoding)、異常處理
吳老師 108/12/27
EXCEL,VBA,Python,證照,東吳,文化推廣部,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境
java 參數 變數 在 C 程式語言第四章4-3參數的傳遞,C語言使用傳值呼叫Pass by ... 的推薦與評價
... 語言使用傳值呼叫Pass by Value(複製 變數 得值為 參數 帶入函數),指標 參數. ... 【 Java 】 JAVA 入門程式設計# Java 物件導向程式設計# Java 入門# Java ... ... <看更多>
java 參數 變數 在 第14 篇、函式- Java 程式設計 的推薦與評價
() 達到了表示函式調用的重要作用; 即使沒有參數也必須要有 (); 可以傳遞的值是表達式的結果,包含:常數、變數、函數返回值,計算結果. ... <看更多>