學到兩件事
學到兩件事:1. 不要急著做決定,尤其是對自己沒那麼熟的東西。2. 該堅持的時候,要堅持。自勉之。
學到兩件事:1. 不要急著做決定,尤其是對自己沒那麼熟的東西。2. 該堅持的時候,要堅持。自勉之。
30 歲,而立之年,似乎是一個值得拿來大肆慶祝的時間點。但一想到人生又邁入下一個十年,卻仍然對這個社會還沒能有什麼實質貢獻,就覺得慚愧。十年又十年,再數個幾次就沒了。
身處這令人絕望的世代,看場五月天的電影,中和一下最近成指數性暴增的負面消息,才不會愈來愈覺得這個國家沒救了。
夢想,總是要有被實現的一天。做就對了。
上了三天的 Testing & Refactoring Workshop,藉由大量的 coding 來體會之前一直很沒有感覺的 TDD (Test-Driven Development)。基本上就是先寫 test case,再寫對應邏輯的 code,然後三不五時測一下以確保程式還維持在正確的狀態。由於有 100% 的 coverage rate,中間可以放心地配合 refactoring 來把不好的 code smells 改好。而為了減少測試成本,test case 都盡量是 microtesting,甚至遇到 I/O 或 loading 重的部份也盡量改用 mocking 來模擬,除了成本考量,也減少測試上的 dependency。
這種感覺有點熟悉,原來在 design thinking 或是 scrum 也都是類似的想法。Design thinking 裡面先從 empathy 開始,user 的感受就是一個 idea 的 test case,經由發散收斂產生出許多 ideas,透過快速的 prototyping 以及 user 實際操作得到的 feedback 來驗證這個 idea。Scrum 也有同樣的 pattern,planning meeting 定下來的照理說不能再更動的 tasks 就是之後要驗證的 test case,daily sync-up meeting 算是每天都小小測試一下目前做的方向對不對,retrospective meeting 則是一個 sprint 下來的整體總測試。大致上都是把一個很大的項目切成小塊各個擊破,除了可以迅速調整方向,避免不必要的錯誤投資,也讓整個大項目較為模組化,提供許多彈性、擴充性、以及可維護性。
TDD 原來是這麼一回事啊!
公司配的 iPhone 5 第一拍,獻給爸爸帶隊的高雄港遊港半日遊。搭乘遊艇,一路經過造船廠、軍事碼頭、前導船碼頭、漁港、維修碼頭、貨櫃碼頭、散貨碼頭、以及愛河口的遊艇碼頭,聽完有種身為高雄人竟然不知道高雄港有這麼多故事的震撼,同時也因為更了解高雄港而為高雄人感到驕傲。
要是那位大叔可以往後退一點點就好了...