SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
CODE KATA 的⾃自我修煉
ANDYANG@ANDROID TAIPEI
CODE KATA
什什麼是 CODE KATA
▸ Kata 是指武術套路路的意思,源⾃自於⽇日本
▸ Code Kata 透過⼀一些程式題⽬目重複鍛鍊鍊
CODE KATA
CODE KATA 如何進⾏行行
▸ 透過 TDD 的形式進⾏行行
▸ 紅燈,先寫測試程式,因為尚未實作所以 test fail
▸ 綠燈,實作測試程式,讓測試通過 test success
▸ 重構,在綠燈的情形下重構去除程式碼的壞味道
CODE KATA
CODE KATA - TENNIS GAME
玩家在比賽中的分數依據得分次數可分為 0 15 30 40 這四種的其中⼀一種
任⼀一玩家得到 40 之後就代表贏的此局比賽, 但條件是必須符合以下限制
如果雙⽅方都得到 40 則代表 Deuce
從 Deuce 之後,任⼀一⽅方領先⼀一分則為 Advantage
如果⽬目前有⼀一⽅方為 Advantage , 若若 Advantage ⼜又贏得下⼀一球,則 Advantage 那⼀一⽅方獲勝相
反的, 如果沒有 Advantage 的那⼀一⽅方贏得下⼀一球,則⼜又回到 Deuce
贏的那⼀一⽅方⾄至少要得 4 分, 並且⾼高對⽅方 2 分
計分⽅方式從 0 到 3 分別是 Love, Fifteen, Thirty, Forty
計分的⽅方式
play1 score - play2 score e.g. Love - Fifteen
若若兩兩⼈人同分則紀錄為 Score All e.g. Love All
若若為平⼿手則紀錄為 Deuce
若若⼀一⽅方領先則紀錄為 player Advantage e.g. Andy Advantage
若若⼀一⽅方勝利利則紀錄為 player Win e.g. Andy Win

LET’S THINK
CODE KATA
先設計再動⼿手
▸ 需要將分數轉換成 Love, Fifteen, Thirty and Forty
▸ Ready to win 任⼀一⽅方得分到達四分
▸ 勝利利的條件
▸ 比賽進入 Ready to win
▸ ⼤大於對⽅方兩兩分
▸ Advantage 條件
▸ 比賽進入 Ready to win
▸ 領先對⽅方⼀一分
▸ Deuce 條件
▸ 比賽進入 Ready to win
▸ 比分相同
▸ 在 比賽尚未進入 Ready to win
▸ 得分相同⽤用 All 表⽰示
▸ 得分相異異⽤用轉換符號表⽰示
LIVE DEMO
CODE KATA
⼯工程師的快樂往往就是
這麼樸實無華且枯燥
⼀一個⼈人的修煉
CODE KATA
⼀一群⼈人的修煉
CODING DOJO
Q&A

Code kata 的自我修煉

  • 2. CODE KATA 什什麼是 CODE KATA ▸ Kata 是指武術套路路的意思,源⾃自於⽇日本 ▸ Code Kata 透過⼀一些程式題⽬目重複鍛鍊鍊
  • 3. CODE KATA CODE KATA 如何進⾏行行 ▸ 透過 TDD 的形式進⾏行行 ▸ 紅燈,先寫測試程式,因為尚未實作所以 test fail ▸ 綠燈,實作測試程式,讓測試通過 test success ▸ 重構,在綠燈的情形下重構去除程式碼的壞味道
  • 4. CODE KATA CODE KATA - TENNIS GAME 玩家在比賽中的分數依據得分次數可分為 0 15 30 40 這四種的其中⼀一種 任⼀一玩家得到 40 之後就代表贏的此局比賽, 但條件是必須符合以下限制 如果雙⽅方都得到 40 則代表 Deuce 從 Deuce 之後,任⼀一⽅方領先⼀一分則為 Advantage 如果⽬目前有⼀一⽅方為 Advantage , 若若 Advantage ⼜又贏得下⼀一球,則 Advantage 那⼀一⽅方獲勝相 反的, 如果沒有 Advantage 的那⼀一⽅方贏得下⼀一球,則⼜又回到 Deuce 贏的那⼀一⽅方⾄至少要得 4 分, 並且⾼高對⽅方 2 分 計分⽅方式從 0 到 3 分別是 Love, Fifteen, Thirty, Forty 計分的⽅方式 play1 score - play2 score e.g. Love - Fifteen 若若兩兩⼈人同分則紀錄為 Score All e.g. Love All 若若為平⼿手則紀錄為 Deuce 若若⼀一⽅方領先則紀錄為 player Advantage e.g. Andy Advantage 若若⼀一⽅方勝利利則紀錄為 player Win e.g. Andy Win

  • 6. CODE KATA 先設計再動⼿手 ▸ 需要將分數轉換成 Love, Fifteen, Thirty and Forty ▸ Ready to win 任⼀一⽅方得分到達四分 ▸ 勝利利的條件 ▸ 比賽進入 Ready to win ▸ ⼤大於對⽅方兩兩分 ▸ Advantage 條件 ▸ 比賽進入 Ready to win ▸ 領先對⽅方⼀一分 ▸ Deuce 條件 ▸ 比賽進入 Ready to win ▸ 比分相同 ▸ 在 比賽尚未進入 Ready to win ▸ 得分相同⽤用 All 表⽰示 ▸ 得分相異異⽤用轉換符號表⽰示
  • 11. Q&A