Monday, December 3, 2012

重構-Code Refactoring Principles


Why Code Refactoring Work:

1.難以閱讀的程式,難以修改。
2.邏輯重複,難以修改。
3.添加行為時需要修改現有程式碼,難以修改。(同時違反Desing Patterns:Open Close Principle)
4.複雜條件邏輯程式,難以修改。



Indirection and Refactoring:

1.Enable sharing of logic

一個sunmethod在兩個不同的地點被呼叫,或是superclass中的method被subclasses共享。

2.To explain intention and implementation separately:

選擇每個Class和Method的名字,來解釋自己意圖的機會。Class或Method內部解釋和實現這意圖的做法。

3.To isolate change:

在兩個不同地點同時使用同一個物件,其中一個地點想改變物件行為,則產生"同時影響兩處"的風險。為此可做出一個subclass,並在需要修改處引用這個subclass,這樣就不必承擔這風險。


4.To encode conditional:

利用polymorphism,可以靈活彈性而清楚地表達條件邏輯。(Desing Patterns:strategy pattern)。

重構是為了"未來"而不是為了"當下"。


Don't Do Code Refactoring when Project is reach Deadline.

從重構過程贏的生產力只有在最後期限過後才能夠體現出來,所以當專案已近最後期限,避免重構。

No comments:

Post a Comment