分類
code 4 fun

重構全 hard-code 的 tennis

Fake it till you make it,大家一般聽過這句話,卻不知道在實際程式開發過程中是什麼模樣。這裡用大家熟悉的 tennis,但刻意將所有產品程式碼的判斷跟結果都寫死,來練習一下如何重構成真實商業邏輯吧。

這次設計的主題,有別於以往 TDD 開發 tennis,而是重構完全 hard-code 實現的 tennis 產品程式碼。類似下圖所示:

搭配著最近剛翻譯完 Kent Beck 的《TDD by Example》,裡面所介紹到「假實作」的技巧:Fake it till you make it.

※ 請參考:《TDD By Example》範例說明

這次示範的語言是用 Java,如何把這些寫死所有內容的實作,一步一步轉換成真實的 tennis 邏輯。

示範與說明影片如下:

(如果你覺得這樣的影片對你有幫助,對別人有幫助,邀請你來幫影片按讚、訂閱頻道,就是對我最大的鼓勵)

也附上 GitHub 的 repo 相關資訊:

如果你想知道的是「從無到有,怎麼用 TDD 來開發 tennis」,請參考 極速開發 上的示範影片,上面有各種語言版本。

可能會有些朋友會覺得某一些 extract method 的內容可能有些違背真實的商業邏輯,例如 isDeuce() 怎麼可以只判斷 firstPlayerScoreTimes >=3 而已?

好問題,這個空間就留給各位去思考跟調整了。

我自己從那堆全都寫死的判斷式跟回傳結果「重構」回來,享受蠻多樂趣的,建議大家可以試著玩玩看。

順帶一提,你可能覺得「這不叫重構,這是在實現商業邏輯」,不瞞你說,我原本也這樣覺得。但 Kent Beck TDD 裡面的「重構」是包含了「從 假實作 到 真邏輯」的部份,我之前一直覺得這個動作是綠燈的一環,沒想到是被歸類到「重構」那個步驟。看完書裡前後的脈絡跟解說,也是有他的道理在。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *