這兩三年有幸獲邀到一些社群或私人企業演講或帶 Workshop。有一個議題是經當討論到的,叫做:「我們的領域很特別,沒辦法寫單元測試」。
每當討論到這個議題,我都會先了解他們面臨到的阻礙後,再試圖向他們解釋道:「你們的領域沒你想像的那麼特別」。
但類似的事情遇多了,難免不禁反問:「會不會這個領域真的就是這麼特別呢?」
「既然有疑問,那就來驗證吧!」這就是我想要開這一個主題的原因。
筆者有不少朋友在遊戲代工業上班,而其中最常被拿來 argue 說很特別、很難寫單元測試的,非屬「SLOT 老虎機」不可了。 SLOT 中有非常複雜的狀態,也有不可預測的 Random 元素。同時,時間壓力也是業界常見對單元測試與重構的阻力。
我大可以一句「你就題不寫測試才會沒時間」帶過,但,我在想,如果像我這樣對 SLOT 核心運算完全沒經驗的門外漢,用 30 天、每天 10 分鐘的時間,都能用 TDD 的方式做出一個結構合理、設計上也能鬆散耦合、易於修改的 SLOT 算分器,那麼,未來再被問到同樣的問題時,就可以更大聲的說出那一句:「你們的領域真的沒你想像的那麼特別」了吧?我在想。
於是,我就來試試,在乾淨設計的議題上弄髒我的手吧!