May 30 22:26~23:58
上個周末剛上完第二梯次「軟體重構入門實作班」,學員中有三位電機背景,一位機械背景,其餘則是資工、資訊背景。在介紹怪味道(bad smells)與移除這些怪味道的重構(refactoring)方法的時候,Teddy經常會請問學員:「先不管refactoring,你看到這段程式碼會想怎麼改?」
有一位電機系背景的學員X,很熱衷於提供修改看法,而他的建議,幾乎完美的表現出「程序導向」的coding方式,為重構提供了很棒的對照做法。後來討論重構範例的時候,Teddy就開玩笑說:「請問電機系代表有何看法?」
Teddy非常感謝學員X願意在課堂上說出自己的想法,因為Teddy相信這也是其他學員很可能會遇到的問題。經由學員X的提問,可以更具體的思考為什麼要重構,以及為什麼要這樣重構。
***
這件事讓Teddy想起很久以前聽指導教授提起,師母(電子系教授)是做通訊的,她的學生畢業之後從事通訊工作,有許多也都是在寫程式(Teddy原本以為做通訊的都在設計電路)。有一陣子師母的學生來到資工系修一些軟體工程相關課程,希望能夠幫助他們在自己通訊的專業領域上做得更好。
去年有兩個北科電機系博士班的學生來修Teddy的兩門課,後來有一次Teddy問他們:「你們都在做什麼?有在做硬體設計嗎?」結果這兩位博士生說,他們實驗室都在開發軟體,硬體有其他配合的廠商(迷之音:怎麼大家都來搶資工的生意啊XD)。
***
電子、電機、通訊、機械,不管是哪一個科系,都有他們自己專業的部分,也有透過軟體來服務他們專業的需要。雖然程式會動很重要,但如果這些非資工背景的工程師,可以理解基本的軟工,例如開發流程、測試與整合、設計模式、重構等觀念,相信可以有助於將他們自己本業中的軟體開發做得更好、更快,也讓自己更加突出。
***
友藏內心獨白:可是瑞凡,資工的人都不學軟工了…Orz。