很榮幸在7月底幫公司的暑期實習生上了一堂課
Unit testing & TDD Introduction
由於Target Audience都是學生
姑且猜測他們寫code經驗比較不足
所以這次就安排了Unit-Testing的基礎課程以及讓他們實作練習的Coding Dojo
今天安排了整整4小時的課程
所以我把課程切分成 三部分 :
1. 聽課
2. 實作
3. 小組報告
課程一開始 我先放個Why TDD的影片
這招是跟Daniel學的
在開頭放影片 讓準時進來的學生不無聊
讓遲到的學生就算沒看到也沒損失XD
我請他們隨機配對
兩兩分享一下彼此的答案
然後請兩人協調出這2張答案的分數
兩張答案要共享7分
簡言之就是兩者相加要等於7
最後交換手上的故事
繼續下一個配對
這活動的目的是為了讓他們自己決定誰的故事值得分享
分數最高的四位 也順便成為了各組小組長
沒想到大家都還蠻客氣的
3 run的總和下來 最高分才12分
不過不可否認的
透過群眾智慧選出的這幾位小組長
表現上確實很有潛力喔~
分好小組之後
便開始介紹今天的主題
也透過一些簡單的實作練習讓各組建立下一堂課的實作環境
安裝nunit (unit test framework)
寫出第一個unit test project
執行第一個unit test
第二堂課是要玩codind dojo
Dojo是道場的意思
是一個能夠練習武功的地方
所以coding dojo就是個能夠讓大家安心練習寫程式的地方
各組同一時間只有一台電腦能寫code
各小組會有以下角色:
駕駛區裡坐著:
Driver : 實際下手Coding
Navigator: 可與Driver討論或提供方向
觀眾席裡就是坐著觀眾
Audience: 台下觀眾,不能介入coding。
每5分鐘一到,角色是會輪替的
如此一直輪替直到活動結束
今天實作的題目是:
網球計分系統
這題目看似簡單,其中卻藏了一些邏輯危機喔
真的蠻適合當作Coding Dojo的 Kata (練習的套路)
各小組在進行Coding Dojo時
我就在各組間走動觀察
一開始大家都還沒有進入狀況
其他組則還是在為了通過第一個測試而努力
一開始大家都還沒有進入狀況
所以20分鐘後 我中斷了Coding Dojo
請他們反省跟討論接下來的策略
接著 Coding Dojo繼續進行
很明顯地有一組已經知道怎麼玩了
開始按部就班地建立Test Case
其他組則還是在為了通過第一個測試而努力
他們的問題在於忘了Baby Step
不要想太多
不要帶太多情境
其實TDD雖說先寫測試
但也不是先寫測試這麼地膚淺
他的一個價值在於Focus on 需求
小步小步地完成需求
所以先寫出第一個陽春版的測試並不丟臉
但同學們就是想太多了
想要一次全包
最後請各小組上台Demo以及分享他們的經驗
下一集我們再來介紹如何寫出第一個TDD !!!
0 意見:
張貼留言