1999年,世界軟件開發(fā)大師,ThoughtWorks首席科學家馬丁·福勒(Martin
          Fowler)出版《重構(gòu):改善既有代碼的設計》,讀者反饋甚佳,重構(gòu)(Refactoring)的理念被廣泛接納,成為編程的詞匯表中不可或缺的部分。
          2019年,恰逢《重構(gòu)》一書推出20周年,馬丁重新梳理他對重構(gòu)理念的最新思考,不朽經(jīng)典重磅升級?!吨貥?gòu):改善既有代碼的設計(第2版)》中文版將于近日震撼上市!






          《重構(gòu):改善既有代碼的設計(第2版)》

          ISBN:9787115508645

          作者:[美]馬丁·福勒(Martin Fowler)

          譯者:熊節(jié),林從羽





          《重構(gòu)》一書被奉為軟件開發(fā)界的經(jīng)典之作,因其凝聚了軟件開發(fā)社區(qū)專家多年摸索而獲得的寶貴經(jīng)驗,書中所蘊涵的思想和精華,值得反復咀嚼,常讀常新。《重構(gòu)》第一版在我國累計發(fā)售11個版本,累計銷售超20萬冊,包括英文影印版、英文評注版、精裝版、中文簡裝版等,其受歡迎程度可見一斑。
          《重構(gòu)(第2版)》英文版一經(jīng)上市,即位列美亞計算機類圖書暢銷榜排名第一。









          這本備受關(guān)注的第2版在第1版的基礎上做了全面修訂,反映了編程領域業(yè)已發(fā)生的許多變化。
          第2版中介紹的重構(gòu)列表更加內(nèi)聚,并用JavaScript語言重寫了代碼范例。此外,第2版中還新增了與函數(shù)式編程相關(guān)的重構(gòu)范例,旨在教會讀者如何在沒有類的環(huán)境下開展重構(gòu)。新版沿襲了第1版的結(jié)構(gòu),依次解釋什么是重構(gòu),為什么要重構(gòu),如何通過“壞味道”識別出需要重構(gòu)的代碼,以及如何在實踐中成功實施重構(gòu)(無論用的是什么編程語言)?!吨貥?gòu)(第2版)》中文版已在京東、當當、亞馬遜等網(wǎng)絡書店同步開啟圖書預售。





          本書作者馬丁·福勒已出版過7本軟件開發(fā)方面的經(jīng)典書籍。2000年3月,他成為ThoughtWorks的首席科學家。馬丁同時是一位作家、演說者、咨詢師和泛軟件開發(fā)領域的意見領袖。他致力于改善企業(yè)級的軟件設計,對優(yōu)秀的設計以及支撐優(yōu)秀設計的工程實踐孜孜以求,在重構(gòu)、面向?qū)ο蠓治鲈O計、模式、XP和UML等領域都有卓越貢獻。




          談到本書該如何閱讀,本書最大的一個特點清晰揭示了重構(gòu)的過程,解釋了重構(gòu)的原理和最佳實踐方式,并給出了何時以及何地應該開始挖掘代碼以求改善。書中給出了 60
          多個可行的重構(gòu),每個重構(gòu)都介紹了一種經(jīng)過驗證的代碼變換手法的動機和技術(shù)。本書提出的重構(gòu)準則將幫助開發(fā)人員一次一小步地修改代碼,從而減少了開發(fā)過程中的風險。





          本書的另一個特點是,為了方便讀者閱讀,作者特別繪制了本書的內(nèi)容組織結(jié)構(gòu)圖,指出了全書12章內(nèi)容之間的相關(guān)關(guān)系,如圖所示。讀者可以根據(jù)自己的背景或需要,隨意挑選閱讀。









          什么是重構(gòu)





          所謂重構(gòu)(refactoring)是這樣一個過程:在不改變代碼外在行為的前提下,對代碼做出修改,以改進程序的內(nèi)部結(jié)構(gòu)。重構(gòu)是一種經(jīng)千錘百煉形成的有條不紊的程序整理方法,可以最大限度地減小整理過程中引入錯誤的概率。本質(zhì)上說,重構(gòu)就是在代碼寫好之后改進它的設計。





          “在代碼寫好之后改進它的設計”這種說法有點兒奇怪。在軟件開發(fā)的大部分歷史時期,大部分人相信應該先設計而后編碼:首先得有一個良好的設計,然后才能開始編碼。但是,隨著時間流逝,人們不斷修改代碼,于是根據(jù)原先設計所得的系統(tǒng),
          整體結(jié)構(gòu)逐漸衰弱。代碼質(zhì)量慢慢沉淪,編碼工作從嚴謹?shù)墓こ虊櫬錇楹硜y劈的隨性行為。




          “重構(gòu)”正好與此相反。哪怕手上有一個糟糕的設計,甚至是一堆混亂的代碼,
          我們也可以借由重構(gòu)將它加工成設計良好的代碼。重構(gòu)的每個步驟都很簡單,甚至顯得有些過于簡單:只需要把某個字段從一個類移到另一個類,把某些代碼從一個函數(shù)
          拉出來構(gòu)成另一個函數(shù),或是在繼承體系中把某些代碼推上推下就行了。但是,聚沙成塔,這些小小的修改累積起來就可以根本改善設計質(zhì)量。這和一般常見的“軟件會
          慢慢腐爛”的觀點恰恰相反。




          有了重構(gòu)以后,工作的平衡點開始發(fā)生變化。作者發(fā)現(xiàn)設計不是在一開始完成的,
          而是在整個開發(fā)過程中逐漸浮現(xiàn)出來。在系統(tǒng)構(gòu)筑過程中,作者學會了如何不斷改進設計。這個“構(gòu)筑-設計”的反復互動,可以讓一個程序在開發(fā)過程中持續(xù)保有良好的設計。




          對本書的贊譽





          過去20年,《重構(gòu)》一直是我案頭常備的圖書。每次重讀,仍有感悟。對我而言,《重構(gòu)》的意義不只在于指導代碼重構(gòu),更在于讓人從一開始就知道什么是好的代碼,并且盡量寫出沒有“壞味道”的代碼。Martin
          Fowler這次對本書進行的重構(gòu),體現(xiàn)了近年來編程領域的一些思潮變化??磥?,既有設計,永遠有改進空間。

          ?

          ——韓磊,《代碼整潔之道》譯者

          ?


          重構(gòu)早就成了軟件開發(fā)從業(yè)者本能的一部分,每個IDE都內(nèi)置了重構(gòu)功能,每個程序員都定期重構(gòu)自己的代碼。技能上通常不再是問題,但是相對于當年第1版的讀者,現(xiàn)在的程序員對于重構(gòu)這個思想從何而來以及各種細節(jié)反而更陌生,這時候就更值得重新讀一下這本書了。

          ?

          ——霍炬,PRESS.one CTO

          ?

          有人說Martin
          Fowler改變了人類開發(fā)軟件的模式,這一點也不過分,從《模式分析》《UML精粹》《領域特定語言》,到這本《重構(gòu)》新版可以看得出來,他的每一本書都是軟件開發(fā)人員必備的案頭讀物。此前他參與的“敏捷宣言”,更是引領了整個行業(yè)對敏捷開發(fā)的認識,一直到現(xiàn)在。Martin
          Fowler是我們QCon全球軟件開發(fā)大會進入中國時的第一屆講師,也是在那次會議上,他讓國內(nèi)的技術(shù)社區(qū)領略了國際領先的開發(fā)模式,從此“敏捷”二字開始風行國內(nèi)IT領域。

          ?

          今年是QCon進入中國的第十個年頭,我特別開心看到Martin
          Fowler又重寫《重構(gòu)》這本影響深遠的書,他幾乎完全替換了書中所引用的模式案例,并且基于現(xiàn)在用戶的習慣,采用了JavaScript語言來做說明語言。數(shù)十年來他始終保持對技術(shù)的關(guān)注,對創(chuàng)新的熱情,樂此不疲,這是Martin最令人敬佩的地方,也是非常值得我們每一個技術(shù)人學習的地方。

          ?

          ——霍泰穩(wěn),極客邦科技、InfoQ中國創(chuàng)始人兼CEO

          ?


          當今軟件開發(fā)的速度越來越快,帶來的技術(shù)債也越來越多,我從CSDN自身的網(wǎng)站系統(tǒng)開發(fā)中充分認識到重構(gòu)的重要性——如果我們的程序員能理解和掌握重構(gòu)的原則和方法,我們的系統(tǒng)就不會有這么多沉重的債務。真正本質(zhì)的東西是不變的,《重構(gòu)》在出版20年后推出了第2版,再次證明:越本質(zhì)的越長久,也越重要。衷心期待更多的新一代開發(fā)者能從這本書吸收營養(yǎng),開發(fā)出好味道的系統(tǒng)。

          ?

          ——蔣濤,CSDN創(chuàng)始人、董事長

          ?


          最早看到本書第1版的英文原版并決定引進國內(nèi),算起來已經(jīng)是20年前的事了。雖然時間是最強大的重構(gòu)工具,連書里的示例語言都從Java變成JavaScript了,但書中的理念和實踐的價值并沒有隨時間流逝。這充分證明,即使在日新月異的IT技術(shù)世界里,不變的東西其實還是有的,這種書才是真正的經(jīng)典,是技術(shù)人員應該優(yōu)先研讀并一讀再讀的。

          ?

          ——劉江,美團技術(shù)學院院長

          ?


          “對于軟件工程師來說,重構(gòu),并不是額外的工作,它就是編碼本身?!敝钡轿易x過《重構(gòu)》,并經(jīng)過練習,才真正理解到這一點。真希望自己在20多年前寫第一個軟件時,就能讀到這本書,從而能節(jié)省出大量調(diào)試或重復研究代碼的時間。20年過去了,《重構(gòu)》這本書也根據(jù)當前軟件設計及相關(guān)工具的發(fā)展進行了一部分修訂,更加貼近當前的軟件開發(fā)者。希望更多的軟件工程師能夠應用這一技術(shù)節(jié)省出更多的時間。

          ?

          ——喬梁,騰訊高級管理顧問、《持續(xù)交付2.0》作者

          ?


          重構(gòu)是一項被低估了的技術(shù)能力。說起來,重構(gòu)就是“不改變外在行為,而提高代碼質(zhì)量”這么簡簡單單的一句話,但其帶來的影響卻非常深遠:它使我們在解決問題時可以放心地“先做對,再做好”——這種思路本身就可以極大地簡化問題;它使我們消除無謂的意氣之爭——“所謂好,就是更少的壞味道”。我由衷地認為,切實地讀懂了《重構(gòu)》的程序員,在能力上都會獲得一個數(shù)量級的提升。

          ?

          ——徐昊,ThoughtWorks中國區(qū)技術(shù)總監(jiān)

          ?


          當我還是編程菜鳥,想寫出漂亮的代碼而不得門道的時候,《重構(gòu)》這本書就告訴了我,其實高手的代碼也不是一次書就的,只要按這本書里的方法去做,誰都能把代碼寫得那么好;當我還是職場新人,沒來得及寫出太多垃圾代碼的時候,這本書就教會了我,應該去追求編寫人能夠讀懂的而不是僅機器能夠讀懂的代碼。多年以后的某時某刻,當你編碼自信而敏捷,因代碼清晰而受人尊重時,你會慶幸讀過這本書,你也會有些遺憾,應該再早一點去讀這本書。無論過去了多少年,這本書,一直值得推薦。

          ?

          ——閻華,京東7FRESH架構(gòu)師

          ?

          在大獲成功的《重構(gòu)》第1版里,Martin
          Fowler傳達的核心理念是:代碼會隨時間流逝而爛掉。寫得再好的程序代碼,若是發(fā)布了就一直保持原樣,照樣會風化、破碎乃至分崩離析。這是客觀規(guī)律,避免這種命運的唯一出路是持續(xù)重構(gòu)。要想成為高素質(zhì)的軟件工程師,必須認識這一點。

          ?

          20年之后,Martin
          Fowler用現(xiàn)身說法證明,經(jīng)典的《重構(gòu)》也會變得不合時宜,也需要重構(gòu)。如今,不但講解語言從Java改成了JavaScript,原來的重構(gòu)示例也做了很多調(diào)整,新增了15個示例,更重要的是,新版示例不再那么“面向?qū)ο蟆?,應當會收獲更廣泛的讀者群。

          ?

          軟件不死,重構(gòu)不歇。

          ?

          ——余晟,《代碼整潔之道:程序員的職業(yè)素養(yǎng)》譯者

          ?


          隨著軟件項目日積月累,系統(tǒng)維護成本變得越來越高昂是互聯(lián)網(wǎng)團隊共同面臨的問題。用戶在使用互聯(lián)網(wǎng)系統(tǒng)的過程中,遇到的各類運行錯誤或者不可訪問故障,以及開發(fā)團隊面臨的歷史系統(tǒng)不可維護問題,很多時候是代碼初次開發(fā)過程中各種細小的不規(guī)范引起的。持續(xù)優(yōu)化已有代碼是維護系統(tǒng)生命力最好的方法?!吨貥?gòu)》是我推薦團隊必讀的技術(shù)圖書之一。

          ?

          ——楊衛(wèi)華(Tim Yang),微博研發(fā)副總經(jīng)理

          ?


          軟件行業(yè)已經(jīng)高速發(fā)展數(shù)十年,就好似一個嶄新的城市,從一個個村屋矮房到高樓林立。而你的代碼庫就好比你手下的一個房間、一幢平房、一條街道、一片社區(qū)乃至是一座摩天大樓。作為一本經(jīng)典的軟件開發(fā)書籍,《重構(gòu)》告訴我們的不僅僅是如何推倒重建、清理、裝修,而是像一個規(guī)劃師一樣從目的、成本、手段、價值等綜合維度來思考重構(gòu)的意義。在開發(fā)業(yè)務的同時,《重構(gòu)》常伴我左右,警醒我如何寫出更有價值的軟件。

          ?

          ——陰明,掘金社區(qū)創(chuàng)始人

          ?

          重構(gòu),是一個優(yōu)秀程序員的基本功,因為沒人能保證其代碼不隨時間腐化,而重構(gòu)會讓代碼重新煥發(fā)活力。整個軟件行業(yè)對重構(gòu)的認知始于Martin
          Fowler的《重構(gòu)》,這本書讓人們知道了“代碼的壞味道”,見識到了“小步前行”的威力。時隔20年,Martin
          Fowler重新執(zhí)筆改寫《重構(gòu)》,20年間的思維變遷就體現(xiàn)在這本書里,在第1版中,我們看到的是當時方興未艾的面向?qū)ο?,而?版則透露出函數(shù)式編程的影響。如果說有什么程序員進階秘笈,那就是不要錯過Martin
          Fowler的任何一部著作,更何況是已經(jīng)由時間證明過的重要著作《重構(gòu)》的新版!

          ?

          ——鄭曄,火幣網(wǎng)首席架構(gòu)師

          ?

          如果看完本書,就興沖沖地想要找一些代碼來重構(gòu),那你可能就陷入某種“自嗨”之中了。

          ?


          了解本書中列出的那些壞味道,不僅僅可以發(fā)現(xiàn)代碼中的那些壞味道,更可以鞭策自己以及整個團隊:在一開始的時候,就不寫或者少些那種味道很壞的代碼。還應該激勵自己,深入地理解架構(gòu)、理解業(yè)務、理解需求,減少因設計失誤而導致徒勞無益地反復重構(gòu)。

          ?

          重構(gòu)也是有成本的,所以應該思考如何降低重構(gòu)的成本。我推薦每一個程序員都來學習“重構(gòu)”這門手藝。因為學習《重構(gòu)》,是為了減少“重構(gòu)”!

          ?

          ——莊表偉,開源社理事、執(zhí)行長,華為云DevCloud高級產(chǎn)品經(jīng)理







          圖書基本信息:




          書名:重構(gòu):改善既有代碼的設計(第2版)

          ISBN:978-7-115-50864-5

          精裝版定價:168.00

          作者:[美]馬丁·福勒(Martin Fowler)

          譯者:熊節(jié) 林從羽

          出版日期:2019年3月




          更多信息,請訪問人民郵電出版社異步社區(qū):https://www.epubit.com/
          <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fwww.epubit.com%2F>




          關(guān)于異步社區(qū)


          異步社區(qū)(www.epubit.com)由人民郵電出版社出品,是國內(nèi)領先的IT專業(yè)圖書社區(qū)。異步社區(qū)于2015年8月上線運營,依托于人民郵電出版社30余年的IT專業(yè)優(yōu)質(zhì)出版資源和編輯策劃團隊,致力于優(yōu)質(zhì)學習內(nèi)容的出版和分享,為讀者提供優(yōu)質(zhì)學習內(nèi)容,為作譯者提供優(yōu)質(zhì)出版服務,實現(xiàn)作者與讀者在線交流互動,實現(xiàn)傳統(tǒng)出版與數(shù)字出版的融合發(fā)展。




          關(guān)于人民郵電出版社


          人民郵電出版社成立于1953年10月,是工業(yè)和信息化部主管的大型科技出版社。目前圖書出版領域涵蓋信息技術(shù)、少兒、經(jīng)管、攝影、集郵、旅游、心理學、軍事、家庭教育等,其中計算機類圖書的零售市場占有率持續(xù)占據(jù)首位,在傳統(tǒng)的編程開發(fā)、數(shù)據(jù)庫、軟件測試,以及新興的熱點領域如人工智能、大數(shù)據(jù)、前端技術(shù),都占據(jù)了圖書市場的領導地位。

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                污污视频网址 | 91短视频版在线观看www免费 | 豆花视频在线入口www | 小伙强行挺进护士体内 | 中文在线一区 |