說實(shí)話丟失源代碼之說不太可信,代碼庫的管理早就版本化中心化了。
我個人看法是這樣的:
1.確定客戶端版本:最簡單的一步。
2.根據(jù)客戶端版本確定服務(wù)端版本。這一步就很難了,如果公司內(nèi)部流程在十四五年前不夠完善的話,那么其實(shí)很難知道這個客戶端版本對應(yīng)的準(zhǔn)確服務(wù)端版本。國服代理的時候,很大可能在服務(wù)端和客戶端也有本地化的修改,中間涉及了轉(zhuǎn)運(yùn)營商,而且是在下一個大版本轉(zhuǎn)的,老的大版本的本地改動記錄和部署關(guān)系是否還能追溯存疑。
3.服務(wù)端版本依賴的部署環(huán)境是否還可用:例如當(dāng)年是否依賴特定的緩存,數(shù)據(jù)庫,這些依賴的緩存數(shù)據(jù)庫現(xiàn)在還是否可用。是否依賴特定硬件,依賴的硬件還能否正常商業(yè)化購買等。上一步的確認(rèn)考驗(yàn)十幾年前的上線流程控制和記錄,這一步要確認(rèn)就充滿了技術(shù)上的繁瑣測試了。很多十幾年前是常識的東西現(xiàn)在可能已經(jīng)廢棄了。
4.安全補(bǔ)丁和架構(gòu)的對接。這十幾年肯定有發(fā)現(xiàn)和修復(fù)重大安全問題,賬號架構(gòu)也遷移到網(wǎng)易戰(zhàn)網(wǎng)而非簡單的用戶名密碼加安全卡。這些功能是屬于要從后來的新版本上抽取出來對接到老版本上的。這是完全的架構(gòu)修改,需要大量開發(fā)測試。
所以找到了代碼給按照十幾年前的方式部署一遍可能不難,但是代碼里面的安全問題要修復(fù),代碼里面一個大模塊要重構(gòu),這就是軟件工程上的大問題了。