書籍推薦--程序員必讀書籍之《重構》

我們或多或少知道一些重構的方法,比如重復邏輯封裝成函數里提供各地方來調用者,但你是否有總結過呢?《重構》這本書就是總結收集了100多個重構的方法,一部分可能是你平常就有在用的,更多的是你未接觸過。

身為程序員的你是否有過這樣的場景:每次都覺得自己的代碼寫的很爛,發誓下次一定把代碼寫好,命名寫好,但是下一次還是這樣,總是希望把代碼寫好,但是總有些力不從心,這個時候你就應該看看這本書了--《重構》。

本書提供了近百個重構代碼的方法,有小到給函數改名,大到繼承、模版的使用,都是一些實用看完可以立馬上手的技巧。純純的干貨。

本書結構分為下面幾個方面:

1、介紹糟糕代碼的壞味道和相應的重構法則:比如重復代碼,

* 比如重復代碼,我們都知道對于重復代碼就應該封裝成函數除了這種方法是否還有其他的技巧呢,再比如過長的函數,進行分解;

2、重新組織函數

函數,可以說是構成大型代碼的基礎單元,如果你能把每個函數都寫好,那么整體的代碼邏輯和層次就會清晰,提煉函數或者廢除不必要函數,進行提煉和精簡函數,函數里面臨時變量過多,這時候應該用以查詢函數替代,分解臨時變量或者移除對參數的賦值,最后看能否對算法進行改進。

3、在對象之間搬移特性

把操作封裝到類里面,相信大多數程序員都會,但是你確定你的函數和字段放到合適的對象里面了嗎?類往往會因為承擔過多責任而變得臃腫不堪,這時候應該要考慮提煉成多個類了,隱藏類的委托關系,或者必要時刻應該移除中間人。

4、重新組織數據

簡單來說就是把數據封裝到類里面管理,封裝字段,對字段設置取/設函數,或者把數據封裝成對象。或者以對象取代數組

5、簡化條件表達式

把條件表達式下面的邏輯提煉出獨立函數,增強可讀性,突出邏輯;合并表達式,有多個表達式返回一樣的結果,那么不妨把它們合并起來;每個分支都有相同的一段代碼,為什么不放到條件表達式之外呢?是否有遇到帶flag標志位的循環不妨改用break或return試試吧。條件表達式中最討厭的莫過于嵌套了,多層嵌套,這時候應該使用衛語句來拯救了。如果多個條件表達式不可避免,這時要使用高級重構方法多態來實現了。

6、簡化函數調用

函數重命名,增加減少參數,將查詢和修改函數分離,如果函數名里面有and的話是時候拆分成兩個了,用明確函數取代參數,傳遞整個完整對象

7、處理概括關系

繼承父類和子類,數據怎么處理,字段或者函數上移或下移,提煉子類或超類,提煉接口

重構的方法很多,也都很實用,趕緊看看吧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容

  • 《重構》讀書筆記 總覽 第一部分 第一章從實例程序出發,展示設計的缺陷,對其重構可以了解重構的過程和方法。 第二部...
    白樺葉閱讀 2,417評論 2 5
  • “整潔的代碼簡單直接。整潔的代碼如同優美的散文。整潔的代碼從不隱藏設計者的意圖,充滿了干凈利落的抽象和直截了當的控...
    活這么大就沒飽過閱讀 1,706評論 0 4
  • 上一次的讀書分享活動上面,已經有幾位同事已經分享了《重構》這本書的讀后感,以及他們對重構的一些認識。從他們的分享上...
    賈尼閱讀 1,415評論 3 2
  • “這與胭脂扣又有什么關系?” 我不認為她會無緣無故地講這個故事給我聽。 “從那以后,男子就開始收集花草之淚,可是他...
    邵小妮er閱讀 410評論 2 3
  • 石室圣心堂,位于廣州一德路
    思維的意義閱讀 144評論 1 1