c.c. agile#30 – coding dojo – prepared kata
TRANSCRIPT
BOWLING GAME
1
林子閎 Mars 葉明哲 Brian
2015/2/5
Who?
VoIP, NAT Traversal, Real-Time Video Streaming http://www.iptnet.net/
林子閎 Mars
葉明哲 Brian
2
什麼!?
TDD
Coding Dojo
保齡球計分方式說明
小組設計及分享
套路練習 (Prepared Kata)
回顧會議 (Retrospective)
3
TDD
4
Test-Driven Development (TDD)
5 圖片網址: https://www.pinterest.com/pin/463941199089724582/
Let‘s try TDD
有一個計算機(Calculator)類別
add(augend :int , addend :int) : int
(augend) + (addend) = (total)
6
Calculator
+ add(augend :int , addend :int) : int
Coding Dojo
7
Coding Dojo
8
Prepared Kata 由分享者使用TDD帶領參與者逐步解決問題
每一個步驟都能被觀眾所了解(Baby Steps)
參與者不懂台上在幹嘛時,可以隨時打斷分享者
Randori Kata 問題由觀眾一同解決
設定時間(Timebox),台上兩人,一台筆電
一個主駕駛和一個副駕駛(Pair-Programing)
台上兩人須使用TDD和Baby Steps
時間到,主駕駛回觀眾席;副駕駛當主駕駛;另一位觀眾成為駕駛
所有觀眾都須參與活動
保齡球規則說明
9
計分規則
規則 1場保齡球共有10局 每局的分數為當局擊倒瓶數加上Bonus 第1球全倒稱strike,即結束一局 第2球才全倒稱spare 1~9局每局以兩球內將10個球瓶擊倒為原則 第10局如果前兩球為strike或spare就可以打第3球
Bonus Spare - 下一球擊倒之瓶數 Strike - 下兩球擊倒之瓶數 第10局沒有bonus
10
如果是你 會怎麼設計?
11
套路練習
13
Design
+ roll(pins : int)+ score() : int
Game
首先我們需要一個Class名字為Game,它有兩個methods
roll(pins : int) – 每丟一顆球就呼叫此method一次,參數為當球
擊倒的球瓶數。
score() – 當所有球打完後,呼叫此method,method會回傳總
分。
14
程式說明
Kata 的目地為練習,所以不會力求於寫出一個全方位完美的程式,
例如本程式有一些盲點:
不會判斷每一球的最高擊倒球瓶為10
沒有局的概念
不會判斷每一局的最高擊倒球瓶為10
無法得知中間每局的分數
沒有做最多21球的保護
15
GO 16
回顧會議
17
Retrospective
擠一擠 我們學習了什麼? (寫在黃色便條紙)
什麼阻礙了我們學習? (寫在紅色便條紙)
18
19
圖片網址:http://www.buildingabetterhuman.com/sharemypath/
3Q
20
林子閎 Mars [email protected]
葉明哲 Brian
參考網址 http://codingdojo.org/
http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata