1. 程式人生 > >軟體重構的簡單認識

軟體重構的簡單認識

1.定義

         在軟體工程學中重構(Refactoring)就是在不改變軟體現有功能的基礎上,通過調整程式程式碼改善軟體的質量、效能,使其程式的設計模式和架構更趨合理,提高軟體的擴充套件性和維護性。

2.重構的重要性? 為什麼要重構?

        為什麼要重構?在不改變系統功能的情況下,改變系統的實現方式。為什麼要這麼做?投入精力不用來滿足客戶關心的需求,而是僅僅改變了軟體的實現方式,這是否是在浪費客戶的投資呢?

        對軟體的生命造成威脅的因素只有一個:需求的變更。一個軟體總是為解決某種特定的需求而產生,隨著時間的推移客戶的需求總是會發生變化的,這就產生了一種糟糕的現象:軟體產品最初製造出來,是經過精心的設計,具有良好架構的。但是隨著需求的變化,必須不斷的修改原有的功能、追加新的功能,還免不了有一些缺陷需要修改。為了實現變更,不可避免的要違反最初的設計構架。經過一段時間以後,軟體的架構就千瘡百孔了。bug越來越多,越來越難維護,新的需求越來越難實現,軟體的構架對新的需求漸漸的失去支援能力,而是成為一種制約。最後新需求的開發成本會超過開發一個新的軟體的成本,這就是這個軟體系統的生命走到盡頭的時候。

         重構就能夠最大限度的避免這樣一種現象。系統發展到一定階段後,使用重構的方式,不改變系統的外部功能,只對內部的結構進行重新的整理。通過重構,不斷的調整系統的結構,使系統對於需求的變更始終具有較強的適應能力,延長軟體生命週期。

        重構的好處:

  • 能改進軟體設計使軟體更容易被理解(佈局、命名、註釋、簡化邏輯等)
  • 能幫你找到bug()
  • 提高軟體的開發速度(改進方法,為後繼開發提供優勢)
3.什麼時候進行重構?什麼情況下需要重構?
  • 在新增新功能時進行重構。
  • 在修改bug時進行重構。
  • 在程式碼複審時進行重構。

   存在以下情況需要重構:

  • 帶複雜條件邏輯的程式:方法過長,邏輯過於複雜,錯誤率直線上升,可讀性直線下降;過大的類,往往是類抽象不合理的結果,降低了程式碼的複用性;   
  • 邏輯重複的程式: 一個類中存在相同的程式碼塊,提煉為宜個獨立方法;不同類中有相同的程式碼塊,提煉為一個新類;
  • 過渡耦合的程式:修改或增加一個小功能修改修改大量的程式碼;
  • 難以閱讀的程式:糟糕的命名方式,排版、註解;
  • ......
  • 當現有的程式無法執行,或重構成本已經超出重寫成本時應該是重寫程式,而不是重構程式


4.重構中的注意點

    1.重構中需要注意修改已經對外提供的介面,這時你需要特別謹慎,因為任何事情都有可能發生。最好的辦法是釋出一個新介面,保留原有介面,在原有接口裡直接呼叫新接 口(注意:不是copy新介面的程式碼,這樣會導致程式碼重複),然後在原有舊介面上增加註解“"@Deprecated

"(不贊成、過時的方法),這樣可以給呼叫介面的地方提供時間來修改。