看板 Soft_Job 關於我們 聯絡資訊
補上網頁好讀版: 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/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.249.6.74 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1612102935.A.10A.html ※ 編輯: landlord (111.249.6.74 臺灣), 01/31/2021 22:23:02 ※ 編輯: landlord (111.249.6.74 臺灣), 01/31/2021 22:23:36 ※ 編輯: landlord (111.249.6.74 臺灣), 01/31/2021 22:38:33
ga009900: 推 91哥 01/31 22:40
sharku: 推 01/31 23:36
shibin: 推 01/31 23:43
d0068267: 推 01/31 23:58
art1: 強! 02/01 01:48
taipoo: 推 02/01 02:10
ragena: 91哥的就是要推 02/01 02:47
umum29: 91哥推推推 02/01 04:16
devilkool: 先推再看 02/01 08:40
thumbe31949: 推 02/01 09:33
hilliverson: 推 02/01 10:19
geroge0820: 先推再看 02/01 11:43
super0917: 推推 91哥 02/01 12:34
※ 編輯: landlord (111.249.6.74 臺灣), 02/01/2021 15:12:06
world4jason: 推 02/01 20:14
azureroki: 第一次看 覺得不用滑鼠很猛 02/01 22:04
landlord: 感謝樓上眼尖的朋友發現了,滑鼠只用來做解說用 02/02 02:13
htury: 看到鍵盤流,只有推 02/02 02:25
smily134: 推 02/02 23:52
assanges: 推 02/03 20:02
wulouise: 不用滑鼠真的可以節省很多中斷時間 02/03 20:53
cia1099: tennis是啥? 02/04 14:01
landlord: 網球計分規則 02/04 14:07
landlord: 網友的摘要心得文:http://bit.ly/2YPP7pe 02/05 22:44