4月23日讀書日,全稱“世界圖書與版權(quán)日”,在廣州天河圖書館開了一張借書卡,借了3本書回來看,其中一本就是重構(gòu)手冊-《重構(gòu)》之姊妹篇。為什么借了這本呢,是因為我想了解一些想象中的重構(gòu)和大家認同的重構(gòu)有什么不同,下面我將逐一細說這個異同。
一、原來重構(gòu)是小步前行,逐一重構(gòu)
我以前認為重構(gòu)是某個項目的大部分功能重新修改架構(gòu)才是重構(gòu),看完這本書才知道重構(gòu)可以是對一個屬性,一個方法,一個類, 多個類進行重構(gòu),可以是小的修改也可以是大的修改重構(gòu)。
二、從代碼中能看出來的那些代碼需要重構(gòu),但有些不能直接看出來
只要在代碼中看到一點不對勁的警示信號,但是有的無法在代碼中直接看到有什么問題。就像冰箱里的發(fā)霉變質(zhì)食物,有的味道很臭,有的味道有點臭,有的食物變質(zhì)了但是沒有臭味,這跟代碼的異味很相似。
三、重構(gòu)是分重構(gòu)周期的
重構(gòu)是分重構(gòu)周期的,要解決代碼異味越小,重構(gòu)周期越小。一般是分步走的,一小步重構(gòu)一點代碼(可以是某個屬性或某個方法),小步走,按設定的重構(gòu)周期完成。
四、重構(gòu)是需要衡量是否完成的
重構(gòu)有4個簡單設計:1、運行所有測試;2、不存在重復的邏輯;3、要向程序員清楚地說明對其很重要的每一個意圖;4、盡量少使用類和方法。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26