原创 讀書筆記之

動機:方法粒度小,重用率高,可以讀起來像註釋,重新修改時比較簡單。要注意命名,否則,不提煉也罷。 關鍵:局部變量或是以整體搬遷(聲明、使用都移動到新方法)還是以參數傳遞的形式傳遞給新方法。注意局部變量是不是在後面的代碼使用到了。 示例:

原创 <重構>讀書筆記之<使用查詢替換臨時變量>

動機:臨時變量時臨時的和局部的,把它們替換成方法後,就可以重用了。 關鍵:最常用的的一種情況是:臨時變量只有一次賦值,例如用臨時變量收集“循環計算總和”。一般將新建的方法暫時設爲私有的,並且要確保方法沒有修改任何對象。 示例: def p

原创 <重構>讀書筆記之<內聯化臨時變量>

動機:一個臨時變量只是簡單地進行了一次賦值,那麼應該內聯化它。 關鍵:內聯化臨時變量大多用在“查詢替換臨時變量”的手法中。對用一個函數返回對臨時變量賦值時,可以使用此手法。 示例: base_price = an_order.base_p

原创 <重構>讀書筆記之<提煉方法>

動機:方法粒度小,重用率高,可以讀起來像註釋,重新修改時比較簡單。要注意命名,否則,不提煉也罷。 關鍵:局部變量或是以整體搬遷(聲明、使用都移動到新方法)還是以參數傳遞的形式傳遞給新方法。注意局部變量是不是在後面的代碼使用到了。 示例:

原创 <重構>讀書筆記之<內聯化方法>

動機:堅持短小名字的目的是讓代碼更加清晰、易讀。但有時候方法名和方法體一樣清晰,這時應當去除這個不必要的抽象。重構一個方法時,也可以內聯化這個方法調用的所有函數,然後再進行重構。 關鍵:一些基類的方法,需要被子類進行重寫,這時就不能內聯化