iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
影片教學

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

Day 12 Random 與 Dependency Inversion

  • 分享至 

  • xImage
  •  

Yes

Random

今天的主題,會進入到一個 SLOT 非常非常關鍵的元素:Random。Random 為什麼重要?因為 SLOT 的基本就是要公平,要不可預測,否則要嘛人家不玩,要嘛主辦方會被套利。

Random 對系統來說,則是非常頭疼的存在,他雖然不可預測,但你的程式邏輯一定會有要處理「當 Random 出多少多少時,我要做什麼反應」這種情況的時候。這時你要怎麼測?難不成一直 spin 直到 Random 出指定數字為止?是太閒嗎?

所以,控制 Random 是我們第一個要處理的事情。

Dependency Inversion

Java 原生的 Random 不是真正的 Random,它是用一個公式算出來的一個「看起來亂亂的」的數字排列。靠原生 Random 做出來的 SLOT,在專業上是不能拿來營運的。

其實,業界是有專門的機構在做 Random 的認證的。做過生意的人就知道,認證這東西,每個地區規定都不同。也就是說,我同一套系統,在不同場合,拿來產生亂數的 library 可能要不同,但我其他程式又一樣,因此,寫很多份 code 明顯是不智的。

下一回,我們來看看 Dependency Inversion (DI) 如何幫我們輕巧地解決這個問題。


上一篇
Day 11 Design by Contract
下一篇
Day 13 重構出易抽換的 Random Number Generator
系列文
『請你跟我這樣做』- 30 天 TDD 出一個 SLOT 算分器30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言