SlideShare a Scribd company logo
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

More Related Content

More from 哲偉 楊

Kotlin初體驗
Kotlin初體驗Kotlin初體驗
Kotlin初體驗
哲偉 楊
 
Kotlin 初體驗
Kotlin 初體驗Kotlin 初體驗
Kotlin 初體驗
哲偉 楊
 
Unit test and ui testing with cucumber
Unit test and ui testing with cucumberUnit test and ui testing with cucumber
Unit test and ui testing with cucumber
哲偉 楊
 
RxJava With retrolambda
RxJava With retrolambdaRxJava With retrolambda
RxJava With retrolambda
哲偉 楊
 
ORMLite Android
ORMLite AndroidORMLite Android
ORMLite Android
哲偉 楊
 
設計師合作經驗分享
設計師合作經驗分享設計師合作經驗分享
設計師合作經驗分享
哲偉 楊
 
Dog point
Dog pointDog point
Dog point
哲偉 楊
 
Gson
GsonGson
Hybrid design with bootstrap
Hybrid design with bootstrapHybrid design with bootstrap
Hybrid design with bootstrap
哲偉 楊
 

More from 哲偉 楊 (9)

Kotlin初體驗
Kotlin初體驗Kotlin初體驗
Kotlin初體驗
 
Kotlin 初體驗
Kotlin 初體驗Kotlin 初體驗
Kotlin 初體驗
 
Unit test and ui testing with cucumber
Unit test and ui testing with cucumberUnit test and ui testing with cucumber
Unit test and ui testing with cucumber
 
RxJava With retrolambda
RxJava With retrolambdaRxJava With retrolambda
RxJava With retrolambda
 
ORMLite Android
ORMLite AndroidORMLite Android
ORMLite Android
 
設計師合作經驗分享
設計師合作經驗分享設計師合作經驗分享
設計師合作經驗分享
 
Dog point
Dog pointDog point
Dog point
 
Gson
GsonGson
Gson
 
Hybrid design with bootstrap
Hybrid design with bootstrapHybrid design with bootstrap
Hybrid design with bootstrap
 

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