Bowling Game Kata

最近 ShengYu 在閱讀 Uncle Bob 的無暇程式碼 番外篇 The Clean Coder 第6章時,發現了所謂的程式設計道場 (Coding Dojo),便覺得有趣,

術語解釋
Kata 套路/對打
Wasa 瓦薩
Dojo 道場
Randori 自由練習

我自己也練習了一個 Bowling Game Kata,詳情可以看 Github 的 commit 紀錄,就知道我做了什麼事。

以下是 Uncle Bob 喜歡的 kata
保齡球 http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata
質因數 http://www.butunclebob.com/ArticleS.UncleBob.ThePrimeFactorsKata
自動換行 http://thecleancoder.blogspot.com/2010/10/craftsman-62-dark-path.html

測試驅動 TDD (Test-Driven Development) 給我一個很大的啟發是,過往我們寫的程式過很久後再回去看時,發現當初寫得不夠好,要擴充難以擴充,想重構又怕改壞了原有功能,但如果當初是測試驅動 TDD 開發的,那麼我們便能有信心的動手下去改,因為改完只需要再跑一次測試就知道有沒有改壞,這是多麼好的一件事啊,然而現實面不一定能夠這樣,可能變成是不敢去改,因為有功無賞打壞要賠的事很少有人會去做,但未來可以嘗試看看是不是對專案開發有幫助。

其他參考
Coding Dojo 程式設計道場
http://www.codingdojo.org/KataCatalogue/
Adventures in C#: The Bowling Game
https://ronjeffries.com/xprog/articles/acsbowling/
The Bowling Game Kata - 泰迪軟體Teddysoft
https://youtu.be/Om0co6xNNBI
(講解得不錯)
魚乾的筆記本: Bowling Game Kata
http://fishjerky.blogspot.com/2014/08/bowling-game-kata.html
Coding Dojo 規則介紹 + FizzBuzz Kata
https://www.slideshare.net/AgileCommunity/coding-dojo-38138724
Coding Dojo 初體驗(Android Code Club)+ PokerHands
https://carterchen247.medium.com/coding-dojo-%E5%88%9D%E9%AB%94%E9%A9%97-android-code-club-d3b4513cec70