狠狠撸

狠狠撸Share a Scribd company logo
Kuma, Vince
About us
Kuma Syu
Java Lecturer
Developer / Testing Addict / Blogger
---
Lazy, Bad tempered
Hate to do coding
Hate ugly codes...
About us
Vince Yang
Who am I?
Ker, ker ...
---
Tony Stark was able
to build this in a cave
Today We Will Have...
● Introduction
○ Coding Dojo
○ TDD
● Today’s Kata
● JFDI (2 rounds)
● Retrospective
What is a Coding Dojo?
An activity, a safe place that programmers can learn, try,
and practice.
It’s Nothing to do with work.
今日主題:TDD + 持續重構
What is TDD?
Test-Driven-Design
Test driven:
● Test nothing more than needed
● Write nothing more than tested.
● 先用,再寫
TDD: Baby Steps + 紅綠燈原則
TDD: Baby Steps + 紅綠燈原則
只有綠燈才重構
重構時不加新邏輯
用最白癡的方法通過測
試
有壞味道要馬上重
構
Coding Dojo: Randori Kata
老司機 領航員
觀察員
Randori Kata with TDD
● 一個司機,一個領航員在台上coding並講解
● 領航員主導邏輯,司機敲代碼
● 兩人要盡量把每個步驟與原因都講出來,包含討論內容
● 過程遵循
○ RED-GREEN Light 原則
○ Test -> Code -> Refactor 循環
○ Baby Steps
Randori Kata with TDD
觀眾:
● 紅燈,觀眾安靜
● 綠燈,可以給任何建議
台上:
● 台上可視情況舉「求救」牌,此時不論燈號,皆視為綠燈
● 7分鐘後司機下臺,領航員變司機,一個觀眾上台當領航員
○ 新領航員可推翻原有決定
阿呆示範 - 紅綠燈 + Pair Programming
1. 寫一個failing test
2. 用最白痴的方法pass他
3. 重構
4. 回到1,再來一次
Today’s Dojo:
題目:
● Tennis Scorer
○ http://codingdojo.org/kata/Tennis/
有没有问题
想想:我們需要哪些Test Case?
身為一個計分員,我希望有一個網球計分器,方便我馬上知道比賽狀況。
AC:
Initial 0:0
A 15:0
Specify By Example
身為一個計分員,我希望有一個網球計分器,方便我馬上知道比賽狀況。
AC:
Initial 0:0
A 15:0
AB 15:15
ABAA 40:15
ABAABB Deuce
ABAABBA A Adv.
ABAABBAB Deuce
ABAABBABAA A Wins
分工
Coders
Observers
● 不用寫main method
● 紅綠燈原則
○ 先寫測試 -> 變紅燈
○ Make it F__king work! -> 變綠燈
○ 亮綠燈馬上重構
○ 重構不可加邏輯
○ 違者阿魯巴!
● 專心看上面在幹啥。嚴禁台下自己偷跑。
○ 違者阿魯巴!
○ 做完不是重點,體驗不同工作方法才是
● Observers來找主持人拿「觀察重點」
Coding dojo 2.0
Coding dojo 2.0
Reference
● Today’s Code
○ https://github.com/bearhsu2/SimboDev
● Codewars
○ https://www.codewars.com/dashboard
● Coding dojo org
○ http://codingdojo.org/
● Kuma老師的軟體工程教室
○ https://medium.com/kuma%E8%80%81%E5%B8%AB%E7%9A%84%E8%BB%9F%E9%AB%94%
E5%B7%A5%E7%A8%8B%E6%95%99%E5%AE%A4
推薦書單
Clean Code, Robert C. Martin
敏捷軟件開發:Scrum實戰指南
Continuous Delivery, David Farley and Jez Humble
Clean Architecture, Robert C. Martin
高效程序員的45個習慣:敏捷開發修煉之道, Venkat Subramaniam, Andy Hunt
觀察員 觀察重點
討論內容是low level or high level
兩人溝通狀況如何?有沒有一方特別強勢?
交接後,兩人首先做什麼事?

More Related Content

Coding dojo 2.0