JavaScript程式碼重構系列-重構基礎知識
原文地址:http://www.monring.com/front_end/javascript-refactor-base.html
什麼是重構?
在不改變現有程式功能的情況下,對程式碼結構及寫法進行調整。
重構目的是什麼?
讓我們的程式碼更清晰,更容易理解,更易於閱讀和易於後期維護。
為什麼要重構?
-
重構使程式更容易理解。
重構的宗旨就是讓程式碼告訴程式設計人員它要做什麼,當沒一段程式碼都能長清晰的表達自己的功能。那麼這樣的程式碼就非常容易理解。
同時,在重構程式碼的過程中,更加深了你對程式功能及程式碼構造的理解。
-
重構可以改善程式設計。
正如極限程式設計(XP)的觀點:重構可以取代預先設計。按最初想法開發編碼,讓程式碼有效運作,然後再重構執行。
所謂極限還是有些偏激,其實涉及跟重構相輔相成,好設計能造就好程式,重構則能修復設計的不足。重構的過程就是一個程式碼整理的過程,同時也是程式碼檢驗的過程,在這個過程中我們可以發現程式碼不足的同時也能發現程式設計的不足。
-
重構可以提高編碼效率。
一目瞭然的程式碼可以節省你不少用於去理解程式碼的時間,這樣編碼效率自然高了。
-
利用重構找到bug,提高效能。
重構的過程就是程式碼檢驗的過程,有些埋藏很深的bug也許就會這樣被你發現了。
-
利用重構提高產品生命週期。
很多時候你都聽到程式設計師說,這些程式碼是已經離職很久的人員寫的,太爛了,需要重寫。這是產品和專案經理最願看到的,如果部門有重構文化,那麼你的產品生命週期就無形的在提高。
何時重構?
隨時重構,不要為了重構而重構。
-
三次法則:第一次做某件事時只管去做;第二次做類似的事會產生反感,但無論如何還是可以去做;第三次再做類似的事,你就該重構了。
-
新增功能時重構:程式碼的設計無法幫助我輕鬆新增我所需的特性,這時候就可以考慮重構。通過完成重構,新特性的新增就會更快速,更流暢。
-
修補錯誤時重構:收到一份錯誤報告,就是重構的訊號。
-
複審程式碼時重構:複審者搭配一個原作者,共同處理這些程式碼。
何時不應該重構?
-
產品即將釋出,專案即將驗收時不該做重構。
-
程式重構的代價超過重寫編寫的代價。
JavaScript的重構跟其他面向物件重構有什麼不同?
JavaScript作為弱勢語言,他的重構更據有挑戰性,需要考慮的東西也會多一些,同時對一些面向物件的重構可能會做的比較少,但需要更加細心。具體表現出以下幾點。
-
遇有JavaScript和HTML,CSS的互動很多,所以分離三者是JavaScript重構的一個大部分。
-
事件處理和回撥機制是JavaScript的用途非常廣,這塊也需要在重構中考慮。
-
JavaScript的類庫眾多,在選擇和淘汰上也是重構的一部分。