一、重構的定義:在不改變軟件功能的前提下,改善代碼的質量、使其程序的設計模式和架構更趨合理,提高軟件的擴展性和維護性。
二、為什么要重構?很多人會說系統已經上線并運行好好的,我們為什么要重構呢,主要有以下幾個原因:
1、隨著業務需求一直增加,原本簡短、清晰的代碼會變得越來越糟糕;
2、隨著業務的增加,現有的架構已經無法滿足,或者開發效率在降低;
3、新成員的加入,代碼風格不統一、質量存在問題;
4、系統存在性能問題,已經影響了系統的可用性;
5、系統的UI交互體驗,已經不滿足現有的用戶的需求,影響用戶使用系統;
6、發現有更好的實現方式。
三、重構的好處:重構不僅可以提升代碼質量,還可以提升工作效率、減少bug的產生。任何架構都是隨著業務的變化,不斷演變出來的,而不是一開始都設計好的,所以學會重構是程序員的必備能力。
四、重構帶來的問題。雖然我讓大家一定要學會重構,并對系統積極重構,但重構也是會帶來諸多問題的:
1、增加開發工作量、增加成本;
2、給系統引入新bug;
3、過渡設計,增加系統的復雜度;
4、過渡設計,降低性能。
五、保證重構質量。重構帶來的問題,百分百要避免的就是引入新bug,而我們怎么才能保證代碼的質量、把風險點降低呢,主要做好以下幾個方面:
1、每一次重構都需要編寫單元測試并通過單元測試;
2、迭代漸進式重構,不要一次性重構跨度太多,并保證每一步重構通過單元測試;
3、保證重構前后功能一致,可以通過所有測試用例;
4、測試重構前后的性能,雖然性能降一點點不會影響系統的運行,但如果降低太多,導致系統無法正常運行,就是bug了。
六、總結:重構任何代碼都是有風險的,在重構啟動之前,必須要梳理現有的系統,并制定必要的流程,保證每一個步驟都是準確無誤的,并嚴格執行所有流程,這樣才能把重構的風險降低。重構對代碼編寫能力、業務需求整理、團隊協作、測試能力、管理能力各方面都有極高的要求,所以重構是非常容易失敗的,但也是非常鍛煉程序員的能力的。對于重構,雖然有諸多挑戰,但我建議還是大膽地去重構。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.