重構的目標:
1.持續偏糾和改進軟體設計
2.提公升專案整體效能,優化**結構
3.使**更被其他人所理解
4.幫助發現隱藏的**缺陷
5.從長遠來看,有助於提高程式設計效率,增加專案進度
重構函式:
1.減少臨時變數。例如:if (are > 1000) //改為 if (self.are > 1000)
2.重構類:
//1.搬移方法 //把方法放在最適合的地方
//2.移欄位 //每個字段、變數應該放到自己的類中,不能隨便放,不屬於這個類的字段移走
//3.提煉乙個新類 //將原類的一些屬性和方法可否有共同點,能否做出乙個新類。降低**耦合 //如乙個person類,有number、totalcosts(話費)、name屬性,可新建乙個telephonenumber類,number、totalcosts屬性放入裡面。
//4.內容移動 //子類都有相同的屬性或方法,可將這屬性、方法移到父類;若只是一部分,可建立乙個子類,寫入屬性、方法。需要的類的基礎此類。
//5.提煉介面 //把某些特殊功能的方法寫入介面中,方便其它類呼叫。
重新組織資料:
//1.封裝字段 //寫屬性的get方法,方便子類改變字段結果,提高擴充套件性 [self interg];
//2.物件替代數值 //比如:原來某類只需要名字屬性,後來又需要性別、年齡,可以新增person類。
//3.傳引數時,最好將引數變成物件,資料多時,很方便
if-else:
1.合併條件表示式:如果有一系列條件測試都得到相同結果,將這些結果測試合併為乙個條件表示式
2.改為平行關係,而非包含關係;如果if-else巢狀沒有關聯性,直接提取到第一層;儘量減少臨時變數改用return直接返回
double getpayamount()else
else}}
return result;
改為:double getpayamount()
else if (obj.gettype == 2)
}重構後:
double getpayamount()
else if (obj.gettype == 2)
}double gettype1money(object obj)
double gettype2money(object obj){
objectb objb = obj.getobjectb();
return objb.getmoney()*obj.getnormalmoneryb()+1000;
4.if-else總結:
盡可能地維持正常流程**在最外層,保持主幹流程是正常核心流程
為維持這個原則:合併條件表示式可以有效地減少if語句數目;減少巢狀能減少深層次邏輯;
異常條件先退出自然而然主幹流程就是正常流程。
針對狀態處理型重構方法有兩種:一種是把不同狀態的操作封裝成函式,簡短if-else內**行數;另一種是利用物件導向多型特性直接乾掉了條件判斷。
漫談專案設計 重構 效能優化
重構的好處 重構能夠改進軟體設計,隨著專案需求的變更,專案體積的變大早已與最初的設計大相徑庭,結構變得凌亂 複雜,如果不進行重構,則很難新增新的功能。1 使專案 更容易理解 很多情況下是由於專案趕進度和不注重質量導致的。那麼通過重構可以幫助 維持自己該有的形態。專案開始的時候,設計並沒有考慮到方方面...
react專案 效能優化 首頁優化 載入優化
react路由懶載入 非同步元件 react loadable 以路由元件分割 或者參考 安裝cnpm install react loadable s 如果專案有100個頁面,那laodable.js就需要寫100遍,這樣就感覺有點冗餘了,所以這個我們可以封裝一下 首先,我們建乙個utilsrc ...
React專案載入效能優化
1.開啟頁面 這個時候頁面是完全空白的。2.首屏渲染 html 和引用的 css 載入完畢,瀏覽器進行首次渲染,有可見的內容出現。我們把首次渲染需要載入的資源體積稱為 首屏體積 3.首次內容渲染 react react dom 業務 載入完畢,應用第一次渲染,頁面主要內容出現。4.可互動 然後應用的...