釋義
軟體重構是指在不改變軟體的功能和外部可見性的情況下,為了改善軟體的結構,提高清晰性、可擴展性和可重用性而對軟體進行的改造。簡而言之,重構就是改進已經寫好的軟體的設計。
軟體重構需要藉助工具完成,重構工具能夠修改代碼同時修改所有引用該代碼的地方。在極端編程的方法學中,重構需要單元測試來支持。
重構代碼
重構一詞通常是指在不改變代碼的外部行為情況下而修改原始碼,有時非正式地成為“清理乾淨”。在極端編程方法學中,重構常常是軟體開發循環的一部分: 開發總是或者增加新的測試和功能,或者重構代碼來改善內部的一致性和清晰性。測試保證了重構沒有改變代碼的外部行為。重構是代碼維護中的一部分,既不修正錯誤,又不增加新的功能性。而是用於提高代碼的可讀性或者改變代碼的結構和設計,使其在將來更容易被維護。特別是,在現有的程式的結構下,給一個程式增加一個新的行為會非常困難,因此開發人員可能先重構這部分代碼,使加入新的行為變得容易。
這個術語是從數字與多項式的因式分解類比而來。如,x2 − 1 可以被分解為 (x + 1)(x − 1), 這樣揭示了前面的形式不可見的內部結構(如兩個根+1和-1)。同樣,在軟體重構中,在可見結構上的改變通常會揭示原有代碼中“隱藏”起來的內部結構。
為了簡化測試,重構是分步驟完成的。當重構結束後,任何行為上的變化無疑都是錯誤並可以與調試一個一個新特性的問題分開解決。