《Refactoring》閱讀筆記

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
—M. Fowler (1999)

這是一本和《設(shè)計模式》比肩的書,跟《設(shè)計模式》一樣憎夷,這本書總結(jié)了編程的最佳實踐走贪,盡管沒有《設(shè)計模式》那么有技術(shù)含量诵盼,可是對程序員的影響卻是實實在在镇草,尤其是對初級程序員砌创,它提供了好代碼和壞代碼的鑒別方法摆尝,而能鑒別好壞是提升編碼能力的基本要求亭病。在提升框架設(shè)計前笆环,先把代碼寫好了。

這本書初版于1999年厚者,歷經(jīng)二十年躁劣,重構(gòu)的思想歷久彌新,尤其是重構(gòu)與測試的正反饋库菲,就算是重構(gòu)手法和細節(jié)大多也沒過時账忘,這個在恨不得每年出一個版的IT圖書中是很少見的。最近作者Martin Fowler用2年的時間修訂了第二版熙宇,在11月30號剛剛出版鳖擒,這個版本的一個大變化是,范例的語言從Java切換成了JavaScript烫止,意味深長啊蒋荚。正好我一直沒學(xué)會JavaScript,多了一個接觸JS的機會馆蠕,不過中文版和英文版的引進估計要等一年后了期升。

言歸正傳
第一章,Martin從一個只有三個類荆几,幾十行代碼的小Demo開始吓妆,一步步講解重構(gòu)的手法和基本概念,讓沒有接觸過重構(gòu)的人對重構(gòu)有最直觀的印象吨铸。 我為了分享,把這個Demo寫了兩遍祖秒,對重構(gòu)的理解和原本只看書就會不同诞吱。正如他說的,重構(gòu)更重要的在于“節(jié)奏”的把握竭缝。這種手感通過刻意練習(xí)才能習(xí)得房维。

第二章就開始涉及到一點點理論,重構(gòu)的原理抬纸,告訴我們什么是重構(gòu)咙俩,為什么要重構(gòu),什么時候開始重構(gòu)湿故,甚至還貼心地出謀劃策如何向經(jīng)理解釋重構(gòu)的必要性阿趁。 重構(gòu)會遇到的什么問題?重構(gòu)與設(shè)計和性能有什么關(guān)系坛猪?這些內(nèi)容包含作者真知灼見脖阵,千萬重視。

第三章墅茉,代碼的壞味道命黔,教會我們識別什么樣的代碼是壞味道的代碼呜呐,需要重構(gòu),這其實是通過大量的訓(xùn)練培養(yǎng)判斷代碼好壞的直接悍募,講得有點雜且啰嗦蘑辑。

第四章,強調(diào)了測試和重構(gòu)的關(guān)系坠宴。測試在開發(fā)者里是一件被普遍忽略的事情洋魂,我想做好幾次,也沒搞起來啄踊。但是我接受了Martin和他們一群大師的觀點忧设,留待后敘。

第五章簡單地介紹一些颠通,書中重構(gòu)的組織方式址晕,重構(gòu)列表長什么樣的。

從第六章到第十一章顿锰,介紹了六種類型的重構(gòu)谨垃,包括組織函數(shù)、對象之間搬移功能硼控、組織數(shù)據(jù)刘陶、簡化表達式、簡化函數(shù)調(diào)用牢撼,處理泛化關(guān)系匙隔,這些重構(gòu)都不難,卻大多很有用熏版,可以立刻應(yīng)用在工程中纷责。

后面三章,大型重構(gòu)撼短,重構(gòu)再膳、復(fù)用與現(xiàn)實,重構(gòu)工具曲横,我這次重讀就跳過了喂柒,也許隨著重構(gòu)的接受和工具的改進,作者覺得不重要禾嫉,在第二版中移除了灾杰。

重構(gòu)和設(shè)計模式之間有天生的聯(lián)系,我覺得重構(gòu)是掌握設(shè)計模式的必經(jīng)之路夭织。這點在《Refactoring to Patterns》有更多的講解吭露,這是重構(gòu)系列的第二本重要的書。預(yù)知后事如何尊惰,且待下回分解讲竿。

周二下午泥兰,我在小組里分享了《重構(gòu)》這個話題。有個一直以來被驗證的心得:“知識只有被分享出去题禀,才能留得下來鞋诗。”

對于一個工作即將十二年的老程序員來說迈嘹,分享這個話題顯然是晚了削彬,現(xiàn)在不做,難道再等下一個甲子嗎秀仲?

“種一棵樹最好的時機是十年前融痛,其次是現(xiàn)在∩窠”

我預(yù)計我的程序員的職業(yè)生涯還很長雁刷,搞不好再搞“幾輩子”,所以保礼,盡管代價很高沛励,把過去沒做好的事情,重新做一遍是值得的炮障。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末目派,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胁赢,更是在濱河造成了極大的恐慌企蹭,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件智末,死亡現(xiàn)場離奇詭異练对,居然都是意外死亡,警方通過查閱死者的電腦和手機吹害,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虚青,“玉大人它呀,你說我怎么就攤上這事“衾澹” “怎么了纵穿?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奢人。 經(jīng)常有香客問我谓媒,道長,這世上最難降的妖魔是什么何乎? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任句惯,我火速辦了婚禮土辩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抢野。我一直安慰自己拷淘,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布指孤。 她就那樣靜靜地躺著启涯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恃轩。 梳的紋絲不亂的頭發(fā)上结洼,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音叉跛,去河邊找鬼松忍。 笑死,一個胖子當(dāng)著我的面吹牛昧互,可吹牛的內(nèi)容都是我干的挽铁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼敞掘,長吁一口氣:“原來是場噩夢啊……” “哼叽掘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起玖雁,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤更扁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赫冬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浓镜,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年劲厌,在試婚紗的時候發(fā)現(xiàn)自己被綠了膛薛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡补鼻,死狀恐怖哄啄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情风范,我是刑警寧澤咨跌,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站硼婿,受9級特大地震影響锌半,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寇漫,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一刊殉、第九天 我趴在偏房一處隱蔽的房頂上張望殉摔。 院中可真熱鬧,春花似錦冗澈、人聲如沸钦勘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽彻采。三九已至,卻和暖如春捌归,著一層夾襖步出監(jiān)牢的瞬間肛响,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工惜索, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留特笋,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓巾兆,卻偏偏與公主長得像猎物,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子角塑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 用兩張圖告訴你蔫磨,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,712評論 2 59
  • 本文把程序員所需掌握的關(guān)鍵知識總結(jié)為三大類19個關(guān)鍵概念圃伶,然后給出了掌握每個關(guān)鍵概念所需的入門書籍堤如,必讀書籍,以及...
    dle_oxio閱讀 11,097評論 6 244
  • 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文鏈接:http://lucida.me...
    那一天_9446閱讀 3,250評論 4 81
  • 最近想學(xué)一下精修圖片 一窒朋、課程總結(jié)(整體流程): 01 拼圖(取兩張圖清晰位置拼貼)——摳出產(chǎn)品主體——去色 02...
    Dimples宇閱讀 236評論 0 1
  • 情景: 輝輝媽媽說話的語速偏快一些搀罢,她能很快地說到重點,而且也能安靜下來傾聽老師的意見侥猩。 輝輝站在一旁不停的有小動...
    溫暖媽咪閱讀 1,161評論 0 1