Design by Contract 除了單元測試,還有另一種方式,也可以在程式邏輯有誤時,幫你主動抓出來。這是一種設計風格:依合約設計(Design by...
Random 今天的主題,會進入到一個 SLOT 非常非常關鍵的元素:Random。Random 為什麼重要?因為 SLOT 的基本就是要公平,要不可預測,否...
依賴反轉 為了達到「在不同場景替換不同 Random」的目的,我們必須讓每次的抽換,所付出的開發成本最小化。要達到這目標,有一個最關鍵檔在前面的阻礙:Java...
回傳足夠且正確的資料給前端 原來我們前後端訂好的介面,只要回傳贏的分數(win)就好,但因為表現有需要,所以只回傳 win 是不夠的,還得加上新的盤面才行。我...
More on CQS 我們試圖把命令與查詢從介面上分開,分開的原因是因為當狀態改變,其實會受到影響的狀態不只一個,會受到影響的查詢指令也不只一個。如果命令與...
CQS 在軟體設計中有一種思路叫「命令與查詢分離」(Command Query Separation),意思是指我們把所有操作都分成兩種:會改變狀態的命令,與...
TDD 的「標準姿勢」 重構的過程中,我一定要用付費的 IDE 來做事嗎?我一定要把步驟切這麼小嗎?當我腦中就真的有一個非常清楚的樣貌,這時我可不可以不要 b...
Free Game Free Game 顧名思義就是免費遊戲,是系統「送」你的。相對於 Free Game,我們到昨天為止玩的普通遊戲,就叫 Base Gam...
邊做邊重構 一直以來我們都是使用「邊做邊重構」的方式來進行開發,本集也不例外。這一集與其他集不同的是,我們要一口氣把 Free Game 的邏輯做完。 雖說是...
Checked Exception 與 Unchecked Exception 「例外處理不就是 try-catch 嗎?有什麼難的?」 會說這種話的人,肯定...