第十五屆 佳作

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

系列文章

DAY 11

Day 11 Design by Contract

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

DAY 12

Day 12 Random 與 Dependency Inversion

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

DAY 13

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

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

DAY 14

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

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

DAY 15

Day 16 Primitive Obsession 與 CQS

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

DAY 16

Day 15 不改變狀態的 Query 接口

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

DAY 17

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

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

DAY 18

Day 18 Free Game 簡介與開頭

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

DAY 19

Day 19 Free Game 完整版

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

DAY 20

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

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