2013年9月8日 星期日

Look back to keep getting better

第一輪C步驟結束時,我們得到一個可執行、可驗證的程式。接著進行L步驟:回顧,其的目的是為了讓程式變得更好,找出值得改善的議題,為進入第二輪做好準備。如果程式已經無懈可擊,找不到改善議題,則可宣告做完。當然也有可能時間已經用盡,只好宣告結束。這時候,你會慶幸至少程式是可執行、可驗證。你不想只把程式的「屍體」交出去吧!

一個程式至少有兩種回顧的方式:其一是把自己當user,看看這個程式跑起來如何?其二是自己programmer,看看這個程式是否乾淨、易讀、好修改?這一篇我將以user觀點回顧目前的程式


*   *   *

User拿到程式的自然反應:把它跑起來看看!前文中程式執行的畫面,當使用者一切均依據提示完美輸入,程式看起來相當好。眼尖的讀者會注意到最後一次計算內積,兩個向量維度不同,在印出"Dimension error!"後,程式就結束了。很顯然的程式強健度不夠
  

再回到使用者的角色,使用者還會在哪裡遭遇困難?我們的程式要求輸入向量,使用者須打相當多個字。即使使用者極為小心,他可能犯各種錯誤,例如:

  • 使用者說向量維度是m,卻提供一個n向量,n  != m。
  • 向量格式錯誤。

實驗一下即可知道,程式行為變得怪異,再次顯示其強健度不夠




這樣的回顧可繼續下去,但我們先暫時打住。下一篇進行第二輪U-D-C-L。

沒有留言:

張貼留言