讀《重構手冊》-重構之姊妹篇有感,《重構手冊》姊妹篇
4月23日讀書日,全稱“世界圖書與著作權日”,在廣州天河圖書館開了一張借書卡,借了3本書回來看,其中一本就是重構手冊-《重構》之姊妹篇。為什麼借了這本呢,是因為我想瞭解一些想象中的重構和大家認同的重構有什麼不同,下面我將逐一細說這個異同。
一、原來重構是小步前行,逐一重構
我以前認為重構是某個項目的大部分功能重新修改架構才是重構,看完這本書才知道重構可以是對一個屬性,一個方法,一個類, 多個類進行重構,可以是小的修改也可以是大的修改重構。
二、從代碼中能看出來的那些代碼需要重構,但有些不能直接看出來
只要在代碼中看到一點不對勁的警示訊號,但是有的無法在代碼中直接看到有什麼問題。就像冰箱裡的發黴變質食物,有的味道很臭,有的味道有點臭,有的食物變質了但是沒有臭味,這跟代碼的異味很相似。
三、重構是分重構周期的
重構是分重構周期的,要解決代碼異味越小,重構周期越小。一般是分步走的,一小步重構一點代碼(可以是某個屬性或某個方法),小步走,按設定的重構周期完成。
四、重構是需要衡量是否完成的
重構有4個簡單設計:1、運行所有測試;2、不存在重複的邏輯;3、要向程式員清楚地說明對其很重要的每一個意圖;4、盡量少使用類和方法。
每重構一小部分代碼,需要寫單元測試去測試,也可以用進階一點的測試方法如整合測試等,如果單元測試有問題那就繼續重構,這裡可以想到測試驅動開發,讓測試來驗證代碼的準確性。存在重複的邏輯那就是沒有重構完成,需要把重複的邏輯去掉,如可以抽取為一個方法,多個地方調用這個方法就可以去掉重複。如果某些代碼的作用沒有表達清楚,那就重構代碼分清各個步驟,每一行代碼的用意何在,多寫注釋,讓他人容易理解。
五、重構是可以逆處理的
什麼是逆處理?簡單點說就是重構了一些代碼,但是以後某個時刻覺得不理想,需要恢複到重構之前的代碼,這個恢複代碼及時逆處理。
讀完之後對重構有了更進一步的瞭解,並在平常寫代碼的過程中都會按照重構的思路去寫一些盡量不需要重構的代碼,讓代碼品質更高。如果對重構不是很瞭解的話我建議還是拿到重構相關的書看看,深刻理解。以後我還會找個機會把《重構》這邊書看一本,畢竟是《重構手冊》的姊妹篇。
書本圖片:
本文連結:http://www.cnblogs.com/liqw/p/6765054.html