當你修改別人**覺得很痛苦時,覺得晦澀難懂是,覺得設計混亂時,當你發現自己寫的**自己都理不清思路時,這個時候你就應該毫不猶豫地對待嗎進行重構了!
不過很多專案經理,都是進度驅動,還沒有達到質量驅動的高度。所以,當我們面對進度的催促時,我們還有時間重構嗎?肯定會有一些程式設計師認為重構這個時候是欄肺時間,其實不然,重構是保證進度的最快的方式,所以你就大膽地去做吧!
首先我們先弄清楚復用和重複的區別。剛工作的時候,如果遇到乙個和自己以前做過的專案很相似的任務時,就會把這個工程copy了乙份,在此基礎上修改。這個就叫做重複。再舉個例子,若兩個函式(方法)用到同一段**,如果你將一段**拷貝到另乙個函式(方法)中,這也叫重複。後果:若需要修改,則兩個函式(方法)都要修改,以後你可能記不清多少地方需要修改,植入潛在的bug。不過,如果你將這段**重新生成乙個方法,這個就叫復用,我們提倡復用。
其次大膽去掉臨時變數。由於臨時變數可能形成問題,因為他們只在自己所屬的函式(方法)中有效,這樣會使函式變得冗長,會影響理解,也會影響效能。我們提倡短函式(方法),爭取乙個函式(方法)表達一種意思。
關於變數的名稱。重構中也包括該步驟,不要認為更改變了名稱不值得。一段可讀的**應該表達清楚自己的功能,變數就是其中的關鍵。
最後引用martin fowler的幾句建議。1、重構之前,首先檢查自己是否已一套可靠的測試機制;2、惟有寫出人類容易理解的**,才是優秀的程式設計師;3、重構技術是以微小的步伐修改程式。(**待續)
解說社群粉絲重構的價值
用社群粉絲重構網際網路時代的價值 熱播劇播出時總能造成萬人空巷的局面,美劇 迷失 當然也擁有龐大的粉絲群,甚至當播出時間與歐巴馬演說撞車時,都讓路了。在 時代 2010年公布的 全球最具影響力人物 候選人名單中,人氣作家韓寒的名字赫然在列,雖然這個結果遭到了很多質疑,但是無可否認的是,韓寒的粉絲確實...
重構之維 關於重構及《重構》的隨想
重構之維 關於重構及 重構 的隨想 重構 究竟重構了什麼?不止一次地,我聽到我們這個行業裡的大師們對重構技術提出 至少是 置疑 那是我們過去十五年裡一直在做的事 我從 上世紀 70年代就已經開始這樣做了 unix上的黑客們一直都是這樣做的 這些說辭讓我很有興趣探其究竟。在這本 重構 裡,martin...
mysql重構 MySQL重構查詢的方式
在優化有問題的查詢時,目標應該是找到乙個更優的方法獲得實際需要的結果 而不一定總要從mysql獲取一模一樣的結果集。有時候可以查詢轉換一種寫法讓其返回一樣的結果,但是效能更好。但也可以通過修改應用 用另一種方式完成查詢,最終達到一樣的目的。這裡我們將介紹如何通過這種方式來重構查詢,並展示合適需要使用...