我們或多或少知道一些重構的方法,比如重復邏輯封裝成函數里提供各地方來調用者,但你是否有總結過呢?《重構》這本書就是總結收集了100多個重構的方法,一部分可能是你平常就有在用的,更多的是你未接觸過。
身為程序員的你是否有過這樣的場景:每次都覺得自己的代碼寫的很爛,發誓下次一定把代碼寫好,命名寫好,但是下一次還是這樣,總是希望把代碼寫好,但是總有些力不從心,這個時候你就應該看看這本書了--《重構》。
本書提供了近百個重構代碼的方法,有小到給函數改名,大到繼承、模版的使用,都是一些實用看完可以立馬上手的技巧。純純的干貨。
本書結構分為下面幾個方面:
1、介紹糟糕代碼的壞味道和相應的重構法則:比如重復代碼,
* 比如重復代碼,我們都知道對于重復代碼就應該封裝成函數除了這種方法是否還有其他的技巧呢,再比如過長的函數,進行分解;
2、重新組織函數
函數,可以說是構成大型代碼的基礎單元,如果你能把每個函數都寫好,那么整體的代碼邏輯和層次就會清晰,提煉函數或者廢除不必要函數,進行提煉和精簡函數,函數里面臨時變量過多,這時候應該用以查詢函數替代,分解臨時變量或者移除對參數的賦值,最后看能否對算法進行改進。
3、在對象之間搬移特性
把操作封裝到類里面,相信大多數程序員都會,但是你確定你的函數和字段放到合適的對象里面了嗎?類往往會因為承擔過多責任而變得臃腫不堪,這時候應該要考慮提煉成多個類了,隱藏類的委托關系,或者必要時刻應該移除中間人。
4、重新組織數據
簡單來說就是把數據封裝到類里面管理,封裝字段,對字段設置取/設函數,或者把數據封裝成對象。或者以對象取代數組
5、簡化條件表達式
把條件表達式下面的邏輯提煉出獨立函數,增強可讀性,突出邏輯;合并表達式,有多個表達式返回一樣的結果,那么不妨把它們合并起來;每個分支都有相同的一段代碼,為什么不放到條件表達式之外呢?是否有遇到帶flag標志位的循環不妨改用break或return試試吧。條件表達式中最討厭的莫過于嵌套了,多層嵌套,這時候應該使用衛語句來拯救了。如果多個條件表達式不可避免,這時要使用高級重構方法多態來實現了。
6、簡化函數調用
函數重命名,增加減少參數,將查詢和修改函數分離,如果函數名里面有and的話是時候拆分成兩個了,用明確函數取代參數,傳遞整個完整對象
7、處理概括關系
繼承父類和子類,數據怎么處理,字段或者函數上移或下移,提煉子類或超類,提煉接口
重構的方法很多,也都很實用,趕緊看看吧。