匿名 ಠ_ಠ

#純靠北工程師6an

2022-08-03

1年前

軟體維護有兩種截然不同的思路,一種所有的依賴都追蹤最新版,一旦出最新版立即開始試用,出問題馬上反饋社區或者解決,這樣雖然經常需要適配新版,但每次都是小問題,很快就能解決。這是活著的軟體,雖然每天都要吃飯很麻煩,但你能看見它的新陳代謝。

另一種所有的依賴都選擇一個不會變的固定版本,能不升級就不升級,舊版本的臭蟲想辦法保守治療,這種軟體的開發者害怕改變,能推到明天的工作絕對不在今天做,並且喜歡以「專案規模太大,客戶要求嚴格,風險太高」為理由,得過且過,這種是死掉的專案,只是還沒有埋而已,在這種專案上你會發現做變更也特別困難,許多現代專案里非常常見的功能根本加不進去(因為依賴庫不支援)。

活著的專案可能會死,死掉的專案是幾乎不可能再活過來的,落後太多版本,一旦升到最新版就發現到處都是問題修不過來了,因為沒有跟蹤過依賴的版本變更,也搞不清楚可能是什麼問題。像JDK這種已經算好的了,不兼容的情況一般比較少,但連JDK都不肯升,依賴庫肯定也全是JDK6版本的了,要把依賴庫直接升到10,只能選擇死亡了。

鬼門開給後來人,死道友不死貧道。