May 15 22:26~23:53
上禮拜六中午飯後和「單元測試與持續整合實作班」的學員甲聊天,他主動提到《xUnit Test Patterns: Refactoring Test Code》和《Working Effectively with Legacy Code》書中部分內容,讓Teddy頗為意外。上這麼多課以來,第一次遇到有人不僅「宣稱」讀過這兩本書,還可以很具體的討論書中內容,覺得很開心。
學員甲接著提到他有買Teddy所寫的《笑談軟體工程:例外處理設計的逆襲》,還問Teddy有沒有什麼參考資料可以讓他繼續學習例外處理,即使是學術論文也可以。聊到最後Teddy開玩笑的問:「你都會了何必還要來上課呢?」他很客氣的說:「因為要在公司教單元測試,所以先來上課學習」。
***
對於軟體開發到底要了解多少東西以及了解多深入,基本上有兩種不同的看法:
- 軟體「看起來」可以動就好了,其他都是假的。老闆給的新水那麼低,專案時程那麼趕,寫程式是要解決問題,又不是要把程式碼拿去參加「選美比賽」,什麼clean code、design patterns、refactoring,都是一些不食人間煙火的人提出來的理論,一點都不務實。
- 程式碼保持在clean code的境界才可以支持軟體持續穩定的開發步調並及時回應改變。所以,程式除了可以動以外,可讀性、設計、重構、測試、整合、流程都很重要。
這兩種看法各有其道理,在不同的公司文化、專案類型、預算、時程、人力組成等考量之下,會導致偏向其中某一種模式。但就算目前鄉民們處於第1種模式,身為一位「專業人員」,還是需要持續精進自己的專業能力。因為,如果具備第2種模式的能力,不管是在好公司、爛公司,遇到好案子、爛案子,你都有能力處理,甚至可以把爛案子做成好案子。但是,如果只因為目前身陷在第1種模式的專案中,就放棄治療、自暴自棄,那有很高的可能性,自己將一直深陷在第1種模式而無法脫身。長期處在第1種模式,終究導致「以管窺天」的視野,更加堅信這世界上只存在第1種模式,從此不再掙扎,安心了此餘生。
有人說:「生命就該浪費在美好的事物上。」只要你願意,軟體開發也可以成為美好的事物。
***
友藏內心獨白:不管哪種專業,都需要持續精進。
所以對於例外處理還有什麼可以參考的呢?
回覆刪除例外處理參考資料請看明日文章。
回覆刪除