編碼和空手道有什麼關聯呢? 否則為什麼老是出現 Dojo 這個日本字? 最近 study group 有人這樣問我.
 
因為在很多書上出現了 Coding dojo, Kata, Wasa, Randori 等字眼, 大家覺得很像天書, 到底這些跟軟體開發的關係是什麼? 讓我簡單跟大家解釋一下:
 
1. Coding Dojo (編碼道場)
所謂道場就是練習功夫的地方, 所以 coding dojo 就是讓一群人(通常不會太多人), 在一個安全的環境中, 大家一起來練功, 只是這裡的功夫可能是 TDD, pair programming, design pattern, refactoring 或是其他東西.
 
coding-dojo  
 
2. Kata (套路)
當你去學空手道或是跆拳道時, 教練通常教你一些招式, 然後你就可練習, 或是互相練習. 所以在軟體開發中, 套路也就是可以練習的題目.
 
Unknown  
 
你可以在很多地方找到可以練習的題目
http://codingdojo.org/cgi-bin/index.pl?KataCatalogue
http://tddkatas.codeplex.com/
 
比較有名的是拿 Uncle Bob 的例子
http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata
 
3. Wasa
也就是一個人寫測試, 另一個人要寫程式讓它通過. 不過經過一段時間, 兩個人會交換角色來進行. 所以他其實就是一種 ping pong pair programming 的實踐方式. 所以這時候你同時可以練習 TDD 和 pair programming.
 
4. Randori
通常適用於一堆人來練習 kata. 例如 A 寫測試, B 寫程式來讓它通過. 然後再換 B 寫測試, C 寫程式來讓它通過, 一直輪流下去.
 
其實一開始時, 我以為 Randori 是練習一個打十個 XDDD
 
arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(2) 人氣()