💡 熱騰騰的課後感想 💡
這次重構了一組 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與持續重構 課程
coding dojo kata 在 91 敏捷開發之路 Facebook 的最讚貼文
一定要亂哄哄的討論,才會嗨啊。
一定要上台之後整個放空,下台當觀眾之後意見一堆,才是血淋淋的 coding dojo 啊。
一定要回去之後不甘願,自己再動手寫一輪完整的 kata 才會睡得安心啊。
想看更多的照片和與會夥伴的反饋心得,請見:https://www.facebook.com/pg/91agile/photos/?tab=album&album_id=1215476138627002
coding dojo kata 在 91 敏捷開發之路 Facebook 的最讚貼文
昨天的 【熱血 coding dojo】結束,總會有特別熱血的夥伴不甘願,回去再自己動手寫完一遍 kata 的。
這則是雙刀流 Winnie Lin 昨天的成果。
更多其他社群活動的側拍,以及大家的反饋和感想,請參考相簿:https://www.facebook.com/pg/91agile/photos/?tab=album&album_id=1215476138627002
再次感謝 天瓏資訊圖書 提供場地,讓技術人能在這邊一起激盪火花,也謝謝各位願意用新台幣支持天瓏的夥伴們!
忍不住的熱血噴發
歷經約 5 小時左右完成了第一版 Poker Hand Kata
自今日 #CodingDojo 結束回家後重新整理思維
熱血點火師 Joey Chen 的引導大大減少撞牆路途
之前玩了兩次 dojo 都還寫不出完整的 Kata
就在今夜完成後看到一排綠燈,成就感滿滿啊!