經歷三份程式工作
內容大部份是自家產品
而非外包的專案
常常有機會維護超過五年的程式碼

以前的我總是認為
舊程式都是上個時代的餘孽
因為沒有時間去剷除他
所以才放任它一直作怪

像是罪大惡極的Visual Basic
或是為人詬病的Web Form
即使知道它以前的豐功偉業
但開發時總是敬而遠之
畢竟大家都比較喜歡.Net Core
Docker, k8s這些新潮的東西

不過隨著開發時間越來越久
才慢慢發現
老舊的程式碼
不一定就比較爛
反之還常常看到令人讚嘆的設計
像是方便擴充的接口
或是偵錯上的小巧思

而新的專案
有時候是對於新技術的不熟悉
有時候是參雜太多工程師的野心
或是還沒有經時間淬鍊
看起來就是急就章的寫法
相比舊專案
少了歲月打磨的光亮

.Net Core的專案
不一定就真的好棒棒
Web Form的專案
也不一定就散發老人臭
專案的品質
還是取決於程式碼的好壞
而不是框架的新舊

舊專案可能檔案比較多
編譯時間比較久
有可能CI/CD流程比較舊
無法輕易更動
但它們身上
仍然有許多值得學習的地方

在面對舊專案時
還是多保有一點謙遜
向前人的智慧取經
並且努力讓現有的專案
不要變成禍害後人的遺毒