iT邦幫忙

鐵人檔案

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

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

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

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

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

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

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

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

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

Day 1 前言

緣起 這兩三年有幸獲邀到一些社群或私人企業演講或帶 Workshop。有一個議題是經當討論到的,叫做:「我們的領域很特別,沒辦法寫單元測試」。 每當討論到這個...

2023-09-11 ‧ 由 Kuma 分享
DAY 2

Day 2 遊戲流程與名詞定義

SLOT 是什麼? 俗話(?)說得好,要把一個功能做好,必須先了解該領域。只能照著功能刻的開發者很難「刻」出好用的功能。在開工之前,我們先花一點時間來了解一下...

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

Day 3 第一個測項:輸

萬事起頭…難? TDD 的過程中,第一個測項是很重要的。測項安排得好,TDD 的流程就會順暢。 俗話說:「萬事起頭難。」但在 TDD 時,第一個測項,卻是越簡...

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

Day 4 用測項「逼」出輪帶表

輪帶表 輪帶表,也有人稱滾輪表,乃 Slot 遊戲中決定遊戲複雜度與好玩程度的關鍵元素。在 Slot 遊戲中,畫面上的滾輪,可以視為一個超長超大的滾輪的「截圖...

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

Day 5 Five Lines of Code

重構的時機 有的人會說,因為沒時間,所以無法重構。我認為並不是的。事實是你因為放著小問題不管,任憑系統不斷依現有的亂亂的樣子一直長大,等到你發現加東西很困難了...

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

Day 6 Extract Method

抽方法 抽方法是很常見的重構技巧,其好處有二: 把一個很長很雜亂的函式整理乾淨 抽出去的方法可以命名得更能暴露意圖 有些人會質疑,因為抽方法並不是重構的萬...

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

Day 7 加入三條線與試寫 Random

試寫 在理想的情況下,TDD 的樣貌就是 Test -> Code -> Refactor 的無限循環。然而,對於天天面對 Production...

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

Day 8 引入 Screen 與 Random 的商業概念

Screen 原本的設計是把輪帶表直接 return 出去,這是因為我們在測試中注入給主程式的輪帶表只有 5 x 3 的大小。這顯然與事實不符,因為真實的 S...

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

Day 9 重構長方法與 Primitive Obsession

長方法 長方法的問題顯而易見地就是閱讀困難。一句話超過兩行,我們就會認為文字不夠精煉而不易閱讀,一段 Code 也是,超過一定長度,就會超出大腦負荷,語意的表...

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

Day 10 重構出輪帶表與盤面物件

再消基本型別偏執 基本型別是必要的存在,因為它儲存了系統的狀態。為什麼「基本型別偏執」會是一個壞味道?因為如果我們大量地直接操作基本型別,那麼閱讀者(也就是三...

2023-09-20 ‧ 由 Kuma 分享