iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
影片教學

『請你跟我這樣做』- 30 天 TDD 出一個 SLOT 算分器 系列

『我們的邏輯很複雜,沒辦法測』、『我們的行業很特別,沒辦法測』

每次在社群場合聽到這種話,我心裡都是:『真的假的?是有多特別?』

那就來實驗看看吧!我想用 30 天的時間,每天 10 分鐘吧,看有沒有辦法把至少做出一個簡單的 SLOT 計分器。

如果我這個外行人都做得出來,那麼各位領域專家不可能做得比我差吧?

如果到時候真的做不出來,那也就是跟現在一樣而已囉!

來吧,來試看看吧:『請你跟我這樣做!』

鐵人鍊成 | 共 30 篇文章 | 36 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11 Design by Contract

Design by Contract 除了單元測試,還有另一種方式,也可以在程式邏輯有誤時,幫你主動抓出來。這是一種設計風格:依合約設計(Design by...

2023-09-21 ‧ 由 Kuma 分享
DAY 12

Day 12 Random 與 Dependency Inversion

Random 今天的主題,會進入到一個 SLOT 非常非常關鍵的元素:Random。Random 為什麼重要?因為 SLOT 的基本就是要公平,要不可預測,否...

2023-09-22 ‧ 由 Kuma 分享
DAY 13

Day 13 重構出易抽換的 Random Number Generator

依賴反轉 為了達到「在不同場景替換不同 Random」的目的,我們必須讓每次的抽換,所付出的開發成本最小化。要達到這目標,有一個最關鍵檔在前面的阻礙:Java...

2023-09-23 ‧ 由 Kuma 分享
DAY 14

Day 14 與前端溝通 Spin 後的盤面

回傳足夠且正確的資料給前端 原來我們前後端訂好的介面,只要回傳贏的分數(win)就好,但因為表現有需要,所以只回傳 win 是不夠的,還得加上新的盤面才行。我...

2023-09-24 ‧ 由 Kuma 分享
DAY 15

Day 15 不改變狀態的 Query 接口

CQS 在軟體設計中有一種思路叫「命令與查詢分離」(Command Query Separation),意思是指我們把所有操作都分成兩種:會改變狀態的命令,與...

2023-09-25 ‧ 由 Kuma 分享
DAY 16

Day 16 Primitive Obsession 與 CQS

More on CQS 我們試圖把命令與查詢從介面上分開,分開的原因是因為當狀態改變,其實會受到影響的狀態不只一個,會受到影響的查詢指令也不只一個。如果命令與...

2023-09-26 ‧ 由 Kuma 分享
DAY 17

Day 17 大步重構出 單一 Reel 物件

TDD 的「標準姿勢」 重構的過程中,我一定要用付費的 IDE 來做事嗎?我一定要把步驟切這麼小嗎?當我腦中就真的有一個非常清楚的樣貌,這時我可不可以不要 b...

2023-09-27 ‧ 由 Kuma 分享
DAY 18

Day 18 Free Game 簡介與開頭

Free Game Free Game 顧名思義就是免費遊戲,是系統「送」你的。相對於 Free Game,我們到昨天為止玩的普通遊戲,就叫 Base Gam...

2023-09-28 ‧ 由 Kuma 分享
DAY 19

Day 19 Free Game 完整版

邊做邊重構 一直以來我們都是使用「邊做邊重構」的方式來進行開發,本集也不例外。這一集與其他集不同的是,我們要一口氣把 Free Game 的邏輯做完。 雖說是...

2023-09-29 ‧ 由 Kuma 分享
DAY 20

Day 20 重構前準備:完整邏輯與 Checked Exception

Checked Exception 與 Unchecked Exception 「例外處理不就是 try-catch 嗎?有什麼難的?」 會說這種話的人,肯定...

2023-09-30 ‧ 由 Kuma 分享