在 Vue 的 Component 中還有個好用的東西叫做 slot,當開發複雜或巢狀的 component 時,slot 不僅好用更增加了使用上的彈性。 基...
Vue的元件化系統,讓開發者在開發上可以很好維護,主要是因為元件都有各自的用途與模板,而上一篇也介紹過元件之間要如何去做組合溝通,那如果一個網站要放入很多的元件...
緣起 這兩三年有幸獲邀到一些社群或私人企業演講或帶 Workshop。有一個議題是經當討論到的,叫做:「我們的領域很特別,沒辦法寫單元測試」。 每當討論到這個...
More on CQS 我們試圖把命令與查詢從介面上分開,分開的原因是因為當狀態改變,其實會受到影響的狀態不只一個,會受到影響的查詢指令也不只一個。如果命令與...
依賴反轉 為了達到「在不同場景替換不同 Random」的目的,我們必須讓每次的抽換,所付出的開發成本最小化。要達到這目標,有一個最關鍵檔在前面的阻礙:Java...
萬事起頭…難? TDD 的過程中,第一個測項是很重要的。測項安排得好,TDD 的流程就會順暢。 俗話說:「萬事起頭難。」但在 TDD 時,第一個測項,卻是越簡...
Random 今天的主題,會進入到一個 SLOT 非常非常關鍵的元素:Random。Random 為什麼重要?因為 SLOT 的基本就是要公平,要不可預測,否...
今天也要來講解組件的基礎,基礎打好未來學習新的東西才不會搞得東倒西歪,雖然今天已經27天了o(^▽^)o,但即使30天結束還是必須繼續學習,大家一起go go!...
對vue比較熟悉的朋友們,應該對於slot的使用都不陌生,slot對於增加元件的使用彈性上有著很大的幫助。但是React沒有vue框架中的v-slot,要怎麼彈...
RTP 在做完前面這麼多功能與測試之後,今天我們要聊的主題叫做 RTP:Return to Player Percentage,它代表的是玩家每投入 $100...
回傳足夠且正確的資料給前端 原來我們前後端訂好的介面,只要回傳贏的分數(win)就好,但因為表現有需要,所以只回傳 win 是不夠的,還得加上新的盤面才行。我...
Design by Contract 除了單元測試,還有另一種方式,也可以在程式邏輯有誤時,幫你主動抓出來。這是一種設計風格:依合約設計(Design by...
New Game 今天我們來加一個新遊戲。何謂加一個新遊戲?就我們現在的架構來說,加一個新遊戲,就是設計兩個新的 GameFlow,一個給 Base Game...
再消基本型別偏執 基本型別是必要的存在,因為它儲存了系統的狀態。為什麼「基本型別偏執」會是一個壞味道?因為如果我們大量地直接操作基本型別,那麼閱讀者(也就是三...
視情況注入判斷規則 截至目前為止,我們判斷要不要從 Base Game 進入 Free Game 的規則都是固定的,我們進入 Free Game 之後要送幾場...
Free Game Free Game 顧名思義就是免費遊戲,是系統「送」你的。相對於 Free Game,我們到昨天為止玩的普通遊戲,就叫 Base Gam...
存異求同 Base Game 與 Free Game 一開始時差很多,經過我們一番整理後,看起來長得很像,而事實上它們不只長得很像,它們其實本質上根本就在做同...
TDD ft. Recovery 在實踐 Recovery 時,按 TDD 的流程,我們要先給一個壞掉的測試。這裡既然我們已經決定要用 Memento 設計模...
類別整理 我們花了二十幾天,從一行程式都沒有,甚至連規則都不太清楚的情況下,開始我們的 TDD ft. Slot 之旅。我們一開始什麼都不會,只會寫死 ret...
Screen 原本的設計是把輪帶表直接 return 出去,這是因為我們在測試中注入給主程式的輪帶表只有 5 x 3 的大小。這顯然與事實不符,因為真實的 S...
過猶不及 重構的過程中,「不知道目標」與「硬重構成不適合的目標」都是常見造成未來更高維護成本的情況。不知道目標比較常出現在只知道完成工作,從沒想過要做得更好的...
Recovery Recovery 是 Slot 遊戲當中很重要的一個功能。Recovery 在做的事情就是,當玩家遊戲玩到一半,突然斷線或想要暫停的時候,可...
Checked Exception 與 Unchecked Exception 「例外處理不就是 try-catch 嗎?有什麼難的?」 會說這種話的人,肯定...
簡單工廠 現在我們的 Calculator 已經有 Slot 算分器基本要有的功能了。真要說的話,一個非功能需求我們還沒達成,也就是「容易創建」。 現在的...
抽象化 抽象化是所有重構技巧的根基。何謂抽象化?抽象化指的是一段程式碼不被當下的特殊狀態綁住,單純只看業務邏輯,抽象化也是一個把『不同』與『相同』分離出來的技...
CQS 在軟體設計中有一種思路叫「命令與查詢分離」(Command Query Separation),意思是指我們把所有操作都分成兩種:會改變狀態的命令,與...
TDD 的「標準姿勢」 重構的過程中,我一定要用付費的 IDE 來做事嗎?我一定要把步驟切這麼小嗎?當我腦中就真的有一個非常清楚的樣貌,這時我可不可以不要 b...
邊做邊重構 一直以來我們都是使用「邊做邊重構」的方式來進行開發,本集也不例外。這一集與其他集不同的是,我們要一口氣把 Free Game 的邏輯做完。 雖說是...