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

看板Soft_Job作者 (91)時間3年前 (2021/01/31 22:22), 3年前編輯推噓18(1805)
留言23則, 21人參與, 3年前最新討論串1/1
補上網頁好讀版: 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

01/31 22:40, 3年前 , 1F
推 91哥
01/31 22:40, 1F

01/31 23:36, 3年前 , 2F
01/31 23:36, 2F

01/31 23:43, 3年前 , 3F
01/31 23:43, 3F

01/31 23:58, 3年前 , 4F
01/31 23:58, 4F

02/01 01:48, 3年前 , 5F
強!
02/01 01:48, 5F

02/01 02:10, 3年前 , 6F
02/01 02:10, 6F

02/01 02:47, 3年前 , 7F
91哥的就是要推
02/01 02:47, 7F

02/01 04:16, 3年前 , 8F
91哥推推推
02/01 04:16, 8F

02/01 08:40, 3年前 , 9F
先推再看
02/01 08:40, 9F

02/01 09:33, 3年前 , 10F
02/01 09:33, 10F

02/01 10:19, 3年前 , 11F
02/01 10:19, 11F

02/01 11:43, 3年前 , 12F
先推再看
02/01 11:43, 12F

02/01 12:34, 3年前 , 13F
推推 91哥
02/01 12:34, 13F
※ 編輯: landlord (111.249.6.74 臺灣), 02/01/2021 15:12:06

02/01 20:14, 3年前 , 14F
02/01 20:14, 14F

02/01 22:04, 3年前 , 15F
第一次看 覺得不用滑鼠很猛
02/01 22:04, 15F

02/02 02:13, 3年前 , 16F
感謝樓上眼尖的朋友發現了,滑鼠只用來做解說用
02/02 02:13, 16F

02/02 02:25, 3年前 , 17F
看到鍵盤流,只有推
02/02 02:25, 17F

02/02 23:52, 3年前 , 18F
02/02 23:52, 18F

02/03 20:02, 3年前 , 19F
02/03 20:02, 19F

02/03 20:53, 3年前 , 20F
不用滑鼠真的可以節省很多中斷時間
02/03 20:53, 20F

02/04 14:01, 3年前 , 21F
tennis是啥?
02/04 14:01, 21F

02/04 14:07, 3年前 , 22F
網球計分規則
02/04 14:07, 22F

02/05 22:44, 3年前 , 23F
網友的摘要心得文:http://bit.ly/2YPP7pe
02/05 22:44, 23F
文章代碼(AID): #1W5hqN4A (Soft_Job)