Divergent Change(發散式變化) 1、官方解釋: 我們希望軟件能夠更容易被修改——畢竟軟件再怎么說本來就該是「軟」的。一旦需要修改,我們希望能夠跳到系統的某一點,只在該處做修改。如果不能做到這點,你就嗅出兩種緊密相關的刺鼻味道中的一種了。 如果某個class經常因為不同的原因 ...
巨型類Large Class 當一個類嘗試做的太多,它常常展示出過多的實例變量。當一個類有太多實例變量,重復代碼的出現就不遠了。 你可以提取類來打包一部分變量。選擇在部件中有意義的變量放在一起。例如, 存款總量 和 存款貨幣 很可能在同一部件中。更寬泛的說,在一個類中變量的某個子集共同的前綴和后綴預示着組成同一個部件的機會。如果這個部件有成為子類的意義,你會發現提取子類往往更容易。 有時一個類不會 ...
2014-06-17 08:22 6 1041 推薦指數:
Divergent Change(發散式變化) 1、官方解釋: 我們希望軟件能夠更容易被修改——畢竟軟件再怎么說本來就該是「軟」的。一旦需要修改,我們希望能夠跳到系統的某一點,只在該處做修改。如果不能做到這點,你就嗅出兩種緊密相關的刺鼻味道中的一種了。 如果某個class經常因為不同的原因 ...
第一次讀重構 - 改善既有代碼的設計(Refactoring: Improving the Design of Existing Code)這本書還是在學校的時候,那個時候剛開始寫Java代碼,師兄推薦了兩本書《重構》、《設計模式》。在今日看來,這兩本書都是經典好書,得謝謝我的師兄。 最近,打算 ...
介紹 我以前寫過《php雜談 《重構-改善既有代碼的設計》之一重新組織你的函數》,其中代碼壞味道,還有深入挖掘的地方,所以我再重點把這一篇提出來,分幾篇再提一下,不要閑我煩。 我覺得重構是我們要用一生去研究的地方,跟文學一樣 ...
1、Duplicate Code(重復代碼):代碼重復幾乎是最常見的異味了,他也是Refactoring的主要目標之一,代碼重復往往來自於copy-and-paste編程風格,與他相對應的OAOO是一個好系統的重要標志。 2、 Long Method(長方法):他是傳統結構化的遺毒,一個方法 ...
返回總目錄 一、Duplicated Code(重復代碼) 我們寫代碼的時候應該遵循DRY原則:Don't Repeat Yourself。如果你在一個以上的地點看到相同的程序結構,那么可以肯定:設法將他們合而為一,程序會變得更好。 1、同一個類的兩個函數含有相同的表達式 這時候 ...
代碼壞味道:是指在代碼之中潛在問題的警示信號。並非所有的壞味道所指示的確實是問題,但是對於大多數壞味道,均很有必要加以查看,並作出相應的修改。 1. 重復的代碼 如果你在一個以上的地點看到相同的程序結構,那么當可肯定:設法將它們合而為一,程序會變得更好。 同一個class ...
接着昨天的繼續說,廢話不說,直接進入正題: 【3】Large Class(過大的類) 查看一個類是否“過大”,這里有一個小技巧分享給大家。就是看兩點:1)這個類實例變量太多,必然會有Duplicated Code(重復代碼) 2)類內如果有太多代碼,也會產生 ...