input number => output string
1 <= X <= Int.max
3 => 1 2 fizz
12 => 1 2 fizz 4 buzz fizz dizz 8 fizz buzz 11 fizz
10 => 1 2 fizz 4 buzz fizz dizz 8 fizz buzz
3*n fizz
5*n buzz
7*n dizz
15 => 1 2 fizz 4 buzz fizz dizz 8 fizz buzz 11 fizz 13 14 fizzbuzz
- 先完成 happy path,再來考慮 edge case
- 先講求有效果,再研究不傷身。
Go Go Go !!!
分析 Input/Process/Output 流程
Brain Storming 後的產出:
小編自己想的順序
- Take Easy (誤) 挑簡單的做 => 不要太為難自己
- (接著將事情由簡單到複雜處理)
- 簡單的 input
- ...(參考圖片內容)...
- ...
這場 Workshop 由 IPO 模型開啟討論,而 IPO 即為 Input、Process、Output 的簡稱。
依著同樣的套路一開始不能講得太清楚:
我們要做一個功能,輸入是 Integer,而 Output 是 String 而 Integer 最小是 1,沒有上限。
接著,如果有什麼疑問,就儘管發問。
如果有參與上一場的朋友,可能已經知道了「代誌不是憨人想得那麼簡單」,現在大概是處於「需求還沒有弄清楚的階段」:
先給個簡單的例子: 輸入為 1 時,會輸出為 "1"
那有沒有人要接著問其他的例子來弄明白需求呢?
3 會是什麼呢? 1 2 fizz
到了第一個比較「意外」的例子出現後,有些人真的發現自己沒在狀況內了。後續就如同前面的表列,完成了測試案例表。
據小編的觀察,已經一開始就熟悉 3A 測試的組別佔少數,也許需要有一點補充材料讓大家能接上「由開始,到起跑」中間的流程。
昨天,講者們替我們示範的重點有:
- production code 與 test code 一次只能動一邊
- 重構的前提是 test code 都過關,在不動 test code 的前提下,去修改 production code。
- 中間示範「整理程式碼為相似結構再進行重構」的實作策略。