軟件產(chǎn)品架構(gòu)腐化以后如何維護(hù)
軟件產(chǎn)品經(jīng)過時間久了,不斷的修改,打補(bǔ)丁,就會破壞原來的架構(gòu),導(dǎo)致后面維護(hù)都非常難。
那么在維護(hù)當(dāng)中,有沒有好的經(jīng)驗和辦法,我今天就給大家分享幾點好的經(jīng)驗供大家參考。
第1個經(jīng)驗就是,新老代碼要進(jìn)行隔離,也就是說,新代碼要跟老代碼隔離開。
為新代碼創(chuàng)建新的文件,心的類,新的配置,如果一定在老的類的改的時候,必須增加新的函數(shù),如果新增函數(shù)里也解決不了必須在老的類里面老的函數(shù)那么就做好注釋和代碼塊的隔離,這樣來講就通過代碼塊,函數(shù),類,文件,配置把新老代碼獨立開了,這樣就會在新老功能當(dāng)中做好區(qū)分,這樣的話就不容易出問題,質(zhì)量,效率都會高。
第2個經(jīng)驗,就是做局部重構(gòu)
就是選擇子系統(tǒng)或者是模塊進(jìn)行重構(gòu),當(dāng)對于某個子系統(tǒng)或者模塊考慮的比較清楚了,有了好的重構(gòu)方法了,就可以把這個模塊或者子系統(tǒng)進(jìn)行重構(gòu)。
那么重構(gòu)要注意哪些事項呢?
1)重構(gòu)的時候,安排盡量少的人,1~3個人進(jìn)行模塊或者子系統(tǒng)的優(yōu)化比較好,而不是安排很多人,很多人就容易把這個事情做亂了,效率會很低。
2)做重構(gòu)的設(shè)計,重構(gòu)設(shè)計很重要,要達(dá)成這個重構(gòu)的方案的共識,而不是隨便一個方案就去重構(gòu)了。
3)做特性梳理,這個特性梳理是為了下一步做的,就是這個重構(gòu),一定要兼容以前的特性,那么就必須做特性梳理。
4)做兼容性測試,要保證重構(gòu)后的系統(tǒng)跟原來的系統(tǒng)是完全一樣的功能,性能,穩(wěn)定性都是一樣的或者是比原來更好的,而不能說丟了特性,那都不是原來的系統(tǒng)了那就不要重構(gòu)了。
第3個經(jīng)驗,做全局重構(gòu)
全局是在業(yè)務(wù)有巨大變化或者是在軟件的基礎(chǔ)架構(gòu)有巨大變化的時候進(jìn)行的,比如說,原來你是做的是單體的,現(xiàn)在要做微服務(wù)架構(gòu)那么就有必要做這個全局的重構(gòu)。
全局的重構(gòu),實際就是大一點的局部重構(gòu),那么它的要求是一樣的,也要做重構(gòu)的設(shè)計,特性的梳理,兼容性的測試。只是說安排的人會多一點,盡量還是每一個模塊每一個子系統(tǒng)1~3個人,不宜過多,多了的話,效率就會低下。效果可能還不好。
第4個經(jīng)驗,就是重用老代碼
程序員的都有一個思維,希望是原創(chuàng)的。也就是說他希望代碼都是他親手敲進(jìn)去的,而不是利用別人的代碼,實際上這是一個很不好的思維。
應(yīng)該做到盡量重用以前的代碼,因為老的系統(tǒng)雖然經(jīng)過長時間的修修補(bǔ)補(bǔ)以后,架構(gòu)沒那么好了,代碼看著沒那么清爽了,但是,它里面有很多局部的代碼,局部的算法是非常好的,那這一部分一定要把他繼承下來 重用下來。前面講到的重構(gòu)設(shè)計,其中很大一部分就是包括利用原來代碼的這個設(shè)計,原來代碼的經(jīng)過時間的磨練的質(zhì)量是非常高的,性能也非常高的可靠性也非常好的,如果把她浪費(fèi)掉的是非??上У模赜眉缺WC了質(zhì)量又提高了效率,可以把精力放在有必要重構(gòu)的地方做到更好的重構(gòu)。
希望都能用好老系統(tǒng),使老系統(tǒng)老樹煥發(fā)青春,能夠為企業(yè)帶來更多的商業(yè)價值。