[心得] 重構完全hard-code實現的tennis (影片)

作者: landlord (91)   2021-01-31 22:22:06
補上網頁好讀版:
https://tdd.best/code-4-fun/fake-it-till-you-make-it/
最近蠻喜歡錄一些 coding 的影片分享給一些有興趣的朋友看,
其實沒打算當作啥教學性質,單純覺得抒壓。
我也覺得應該會有一些朋友跟我一樣,
不管是自己coding或看別人coding影片,會覺得挺療癒的。
這次設計的主題,是重構完全 hard-code 實現的 tennis 產品程式碼。
搭配著最近剛翻譯完 Kent Beck 的《TDD by Example》,
裡面介紹到「假實作」的技巧:Fake it till you make it.
[註] 天瓏可預購,農曆年前會出版:
https://www.tenlong.com.tw/products/9789864345618?list_name=srh
這回用 Java 試著把這些寫死所有內容的實作,一步一步轉換成真實的 tennis 邏輯。
① YouTube 影片:https://www.youtube.com/watch?v=d70T_lqxBmY
② GitHub commit history: http://bit.ly/fake-it-java
正向的 TDD 設計 tennis 影片可參考下面連結,
文中有多種語言的用同樣方式實現 tennis 的過程。
https://tdd.best/courses/extreme-developing-202109/
我沒打算廣告活動,純粹只是多種語言的示範影片都放在那上面。
因為 2021 年到年底的培訓已經全額滿了,所以沒有廣告的必要了。
可能會有些人覺得某一些 extract method 的內容可能有些違背真實的商業邏輯,
例如 isDeuce() 怎麼可以只判斷 firstPlayerScoreTimes >=3 而已?
好問題,這個空間就留給各位去思考跟調整了。
我自己從那全都寫死的判斷式跟回傳結果「重構」回來,
享受蠻多樂趣的,建議大家可以玩玩看。
順帶一提,你可能覺得「這不叫重構,這是在實現商業邏輯」,
不瞞你說,我原本也這樣覺得。
但 Kent Beck TDD 裡面的「重構」是包含了「從 假實作 到 真邏輯」的部份,
我之前一直覺得這個動作是綠燈的一環,沒想到是被歸類到「重構」那個步驟。
看完書裡前後的脈絡跟解說,也是有他的道理在。
註:這次翻譯其實最大的貢獻,在於我跟 Kent Beck 提議,把書裡面範例的演進過程,
透過 git commit 並放到 GitHub 上公開,讓所有對 TDD 感興趣的朋友,以及讀者,
既能看到全貌,又能看到每一步的關鍵差異,還能從任何一個時間點往下練習。
Kent Beck 人是真的很大方跟 nice,我們都覺得這樣對這個世界是好的,
對想了解 TDD 的朋友是有蠻大幫助的,所以他同意我準備好內容,直接公開出來。
相關資訊可參考:https://tdd.best/book/tdd-by-example/
作者: ga009900 (Lienfa)   2021-01-31 22:40:00
推 91哥
作者: sharku (明珠求瑕)   2021-01-31 23:36:00
作者: shibin (喜餅)   2021-01-31 23:43:00
作者: d0068267 (WizXu)   2021-01-31 23:58:00
作者: art1 (人,原來不是人)   2021-02-01 01:48:00
強!
作者: taipoo (要成功要積極)   2021-02-01 02:10:00
作者: ragena   2021-02-01 02:47:00
91哥的就是要推
作者: umum29 (....)   2021-02-01 04:16:00
91哥推推推
作者: devilkool (對貓毛過敏的貓控)   2021-02-01 08:40:00
先推再看
作者: thumbe31949 (InertingFantasy)   2021-02-01 09:33:00
作者: hilliverson (還是當學生好)   2021-02-01 10:19:00
作者: geroge0820 (可.....可惡)   2021-02-01 11:43:00
先推再看
作者: super0917 (super0917)   2021-02-01 12:34:00
推推 91哥
作者: world4jason (涼風男孩)   2021-02-01 20:14:00
作者: azureroki (Roki)   2021-02-01 22:04:00
第一次看 覺得不用滑鼠很猛
作者: landlord (91)   2021-02-02 02:13:00
感謝樓上眼尖的朋友發現了,滑鼠只用來做解說用
作者: htury (冰點)   2021-02-02 02:25:00
看到鍵盤流,只有推
作者: smily134 (father134)   2021-02-02 23:52:00
作者: assanges (秋豚老湿)   2021-02-03 20:02:00
作者: wulouise (在線上!=在電腦前)   2021-02-03 20:53:00
不用滑鼠真的可以節省很多中斷時間
作者: cia1099 (阿兜啊)   2021-02-04 14:01:00
tennis是啥?
作者: landlord (91)   2021-02-04 14:07:00
網球計分規則

Links booklink

Contact Us: admin [ a t ] ucptt.com