c.c. agile#30 – coding dojo – prepared kata

20
BOWLING GAME 1 林子閎 Mars 葉明哲 Brian 2015/2/5

Upload: ccagile

Post on 14-Jul-2015

1.582 views

Category:

Software


4 download

TRANSCRIPT

Page 1: C.C. Agile#30 – Coding Dojo – Prepared Kata

BOWLING GAME

1

林子閎 Mars 葉明哲 Brian

2015/2/5

Page 2: C.C. Agile#30 – Coding Dojo – Prepared Kata

Who?

VoIP, NAT Traversal, Real-Time Video Streaming http://www.iptnet.net/

林子閎 Mars

葉明哲 Brian

2

Page 3: C.C. Agile#30 – Coding Dojo – Prepared Kata

什麼!?

TDD

Coding Dojo

保齡球計分方式說明

小組設計及分享

套路練習 (Prepared Kata)

回顧會議 (Retrospective)

3

Page 4: C.C. Agile#30 – Coding Dojo – Prepared Kata

TDD

4

Page 5: C.C. Agile#30 – Coding Dojo – Prepared Kata

Test-Driven Development (TDD)

5 圖片網址: https://www.pinterest.com/pin/463941199089724582/

Page 6: C.C. Agile#30 – Coding Dojo – Prepared Kata

Let‘s try TDD

有一個計算機(Calculator)類別

add(augend :int , addend :int) : int

(augend) + (addend) = (total)

6

Calculator

+ add(augend :int , addend :int) : int

Page 7: C.C. Agile#30 – Coding Dojo – Prepared Kata

Coding Dojo

7

Page 8: C.C. Agile#30 – Coding Dojo – Prepared Kata

Coding Dojo

8

Prepared Kata 由分享者使用TDD帶領參與者逐步解決問題

每一個步驟都能被觀眾所了解(Baby Steps)

參與者不懂台上在幹嘛時,可以隨時打斷分享者

Randori Kata 問題由觀眾一同解決

設定時間(Timebox),台上兩人,一台筆電

一個主駕駛和一個副駕駛(Pair-Programing)

台上兩人須使用TDD和Baby Steps

時間到,主駕駛回觀眾席;副駕駛當主駕駛;另一位觀眾成為駕駛

所有觀眾都須參與活動

Page 9: C.C. Agile#30 – Coding Dojo – Prepared Kata

保齡球規則說明

9

Page 10: C.C. Agile#30 – Coding Dojo – Prepared Kata

計分規則

規則 1場保齡球共有10局 每局的分數為當局擊倒瓶數加上Bonus 第1球全倒稱strike,即結束一局 第2球才全倒稱spare 1~9局每局以兩球內將10個球瓶擊倒為原則 第10局如果前兩球為strike或spare就可以打第3球

Bonus Spare - 下一球擊倒之瓶數 Strike - 下兩球擊倒之瓶數 第10局沒有bonus

10

Page 11: C.C. Agile#30 – Coding Dojo – Prepared Kata

如果是你 會怎麼設計?

11

Page 12: C.C. Agile#30 – Coding Dojo – Prepared Kata

12

圖片網址:http://www.society30.com/sharing-economy/

Page 13: C.C. Agile#30 – Coding Dojo – Prepared Kata

套路練習

13

Page 14: C.C. Agile#30 – Coding Dojo – Prepared Kata

Design

+ roll(pins : int)+ score() : int

Game

首先我們需要一個Class名字為Game,它有兩個methods

roll(pins : int) – 每丟一顆球就呼叫此method一次,參數為當球

擊倒的球瓶數。

score() – 當所有球打完後,呼叫此method,method會回傳總

分。

14

Page 15: C.C. Agile#30 – Coding Dojo – Prepared Kata

程式說明

Kata 的目地為練習,所以不會力求於寫出一個全方位完美的程式,

例如本程式有一些盲點:

不會判斷每一球的最高擊倒球瓶為10

沒有局的概念

不會判斷每一局的最高擊倒球瓶為10

無法得知中間每局的分數

沒有做最多21球的保護

15

Page 16: C.C. Agile#30 – Coding Dojo – Prepared Kata

GO 16

Page 17: C.C. Agile#30 – Coding Dojo – Prepared Kata

回顧會議

17

Page 18: C.C. Agile#30 – Coding Dojo – Prepared Kata

Retrospective

擠一擠 我們學習了什麼? (寫在黃色便條紙)

什麼阻礙了我們學習? (寫在紅色便條紙)

18

Page 19: C.C. Agile#30 – Coding Dojo – Prepared Kata

19

圖片網址:http://www.buildingabetterhuman.com/sharemypath/

Page 20: C.C. Agile#30 – Coding Dojo – Prepared Kata

3Q

20

林子閎 Mars [email protected]

葉明哲 Brian

[email protected]

參考網址 http://codingdojo.org/

http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata