作为程序员,要学习很多重要的主题。算法,数据结构,编程语言,数不胜数,代码重构也是其中必备技能之一。

今天小编推荐一本无敌厉害的书,接下来的很长时间你将被这本书刷屏,它将出现在各大畅销书排行榜内,这本书就是《重构(第2版)》。

它在世界范围内畅销不衰,被翻译为中、德、日、俄等众多语言。

这本经典书20年后重磅升级,更新内容超30%,更新了众多项目案例。

想要成为《重构(第2版)》中文版的首批读者,可以下滑到文末扫码申请四,我们将从报名的读者中选出50人,3月11日首批品鉴。同时京东、当当、天猫等各大书城已同步预售(点击网店名称可以直达购买)。

《重构:改善既有代码的设计(第2版)》作者:马丁·福勒(Martin Fowler)


01

《重构(第2版)》必读的四大理由


理由一:不可撼动的江湖地位

“重构”这个概念来自Smalltalk圈子,没多久就进入了其他语言阵营之中。由于重构是框架开发中不可缺少的一部分,所以当框架开发人员讨论自己的工作时,这个术语就诞生了。重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是《重构》原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。

《重构》一书自第1版问世至今,读者的反馈甚佳,重构的理念已经被广泛接纳,成为编程的词汇表中不可或缺的部分。然而,对于一本与编程相关的书而言,20年己经太漫长,因此作者感到,是时候回头重新修订这本书了。作者几乎重写了全书的每一页,但从其内涵而言,整本书又几乎没有改变。重构的精髓仍然一如既往;大部分关键的重构手法也大体不变。作者希望这次修订能帮助更多的读者学会如何有效地进行重构。

《重构(第2版)》英文版美亚计算机类图书畅销榜排名第一,中文版累计发售了11个版本,累计销售超20万册,分别是英文影印版、英文评注版、精装版、中文简装版等。

美亚榜单截图2月27日

《重构》凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。这本书在豆瓣评分高达9.3分。

理由二:世界级软件开发大师的不朽经典

本书作者马丁·福勒(Martin Fowler) ,世界软件开发大师,ThoughtWorks的首席科学家。他是一位作家、演说者、咨询师和泛软件开发领域的意见领袖。他致力于改善企业级的软件设计,对优秀的设计以及支撑优秀设计的工程实践孜孜以求。他在重构、面向对象分析设计、模式、XP和UML等领域都有卓越贡献。

马丁·福勒(Martin Fowler)


马丁·福勒在英格兰的沃尔索尔长大,去了玛丽皇后文法学校。1983年到2006年去了伦敦大学学院,获得了电子工程和计算机科学的学士学位(ENG)。毕业后他在在Coopers&Lybrand和一家名为Ptech的小型科技公司工作了一段时间,之后于1991年成为独立顾问。他于1994年搬到马萨诸塞州继续担任独立顾问,直到2000年加入ThoughtWorks。

在80年代初期开始从事软件工作,在80年代中期,他开始对面向对象开发的新世界感兴趣。开始专注于将对象引入商业信息系统,首先是与几家公司合作,然后作为独立顾问。在早期,这是使用Smalltalk和C ++,现在它是Java,C#和Ruby。每年他都会学到新东西,同时也发现过去的许多教训仍然适用。这项工作使他在面向对象分析和设计,UML,模式和敏捷开发方法方面发挥了主导作用。“

马丁·福勒已出版过七本软件开发方面的经典书籍。2000年3月,他成为ThoughtWorks的首席科学家。福勒同时是敏捷联盟的成员,于2001年,同其他16名合著者一起协助创作了“敏捷软件开发宣言”。

来源于维基百科:https://zh.wikipedia.org/wiki/%E9%A9%AC%E4%B8%81%C2%B7%E7%A6%8F%E5%8B%92

马丁·福勒在20多年的时间里完成了多本影响深远的著作,成为软件开发行业的里程碑。耳熟能详的作品包括《重构》《分析模式》《领域特定语言》等经典著作。

理由三:20年后经典升级,更适合当下

重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。20 多年前,正是《重构:改善既有代码的设计》第1 版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。如今,Martin Fowler 的《重构:改善既有代码的设计》一书已经成为全球有经验的程序员手中的利器,既可用来改善既有代码的设计、提升软件的可维护性,又可用于使既有代码更易理解、焕发出新的活力。

这本备受关注的第2 版在第1 版的基础上做了全面修订,反映了编程领域业已发生的许多变化。第2版中介绍的重构列表更加内聚,并用JavaScript 语言重写了代码范例。此外,第2版中还新增了与函数式编程相关的重构范例,旨在教会读者如何在没有类的环境下开展重构。

新版沿袭了第1 版的结构,依次解释什么是重构,为什么要重构,如何通过“坏味道”识别出需要重构的代码,以及如何在实践中成功实施重构(无论用的是什么编程语言)。

这些变化很细微,但是涉及到方方面面。变化细微是因为书的基本结构没有改变。书的开篇是一个开放式的例子、一个章节的原则、一个“代码坏味道”的调查和一个测试的介绍。这本书的主体仍然是重构,原来有68个重构示例,作者保留了其中10个,新增了17个。

虽然书的整体结构变化不大,但是文字的变化却很多。每一个章节和重构示例都几乎是从零开始重写,作者几乎没有复制粘贴旧版中的文字。

针对内容更新,作者Martin Fowler曾说:”新版重新调整重心,将重点更少地放在类上。虽然这听起来可能就像将“提取方法”的名称更改为“提取函数”一样简单,但它确实需要重新思考每个重构的所有方面。我需要重新考虑动机,经常需要重新设计。至少结构需要详细审查,通常都需要完全重写。对此我没有做详细的记录,但我觉得引用一个相对简单的旧的重构,就要重新考虑两个重构。“

理由四:众多技术大咖鼎力推荐

本书译者熊节老师,在IT行业已经打拼了18年,在金融、零售、政府、电信、制造业等行业的信息化建设方面有着丰富经验,是中国IT业敏捷浪潮的领军人物。本书得到韩磊、霍炬、霍泰稳、蒋涛、刘江、乔梁、徐昊、阎华、余晟、杨卫华(Tim Yang)、阴明、郑晔、庄表伟等业内大咖联袂推荐。

?下滑看看他们怎么说:

过去20年,《重构》一直是我案头常备的图书。每次重读,仍有感悟。对我而言,《重构》的意义不只在于指导代码重构,更在于让人从一开始就知道什么是好的代码,并且尽量写出没有“坏味道”的代码。Martin Fowler这次对本书进行的重构,体现了近年来编程领域的一些思潮变化。看来,既有设计,永远有改进空间。

——韩磊,《代码整洁之道》译者

重构早就成了软件开发从业者本能的一部分,每个IDE都内置了重构功能,每个程序员都定期重构自己的代码。技能上通常不再是问题,但是相对于当年第1版的读者,现在的程序员对于重构这个思想从何而来以及各种细节反而更陌生,这时候就更值得重新读一下这本书了。

——霍炬,PRESS.one CTO

有人说Martin Fowler改变了人类开发软件的模式,这一点也不过分,从《模式分析》《UML精粹》《领域特定语言》,到这本《重构》新版可以看得出来,他的每一本书都是软件开发人员必备的案头读物。此前他参与的“敏捷宣言”,更是引领了整个行业对敏捷开发的认识,一直到现在。Martin Fowler是我们QCon全球软件开发大会进入中国时的第一届讲师,也是在那次会议上,他让国内的技术社区领略了国际领先的开发模式,从此“敏捷”二字开始风行国内IT领域。

今年是QCon进入中国的第十个年头,我特别开心看到Martin Fowler又重写《重构》这本影响深远的书,他几乎完全替换了书中所引用的模式案例,并且基于现在用户的习惯,采用了JavaScript语言来做说明语言。数十年来他始终保持对技术的关注,对创新的热情,乐此不疲,这是Martin最令人敬佩的地方,也是非常值得我们每一个技术人学习的地方。

——霍泰稳,极客邦科技、InfoQ中国创始人兼CEO

当今软件开发的速度越来越快,带来的技术债也越来越多,我从CSDN自身的网站系统开发中充分认识到重构的重要性——如果我们的程序员能理解和掌握重构的原则和方法,我们的系统就不会有这么多沉重的债务。真正本质的东西是不变的,《重构》在出版20年后推出了第2版,再次证明:越本质的越长久,也越重要。衷心期待更多的新一代开发者能从这本书吸收营养,开发出好味道的系统。

——蒋涛,CSDN创始人、董事长

最早看到本书第1版的英文原版并决定引进国内,算起来已经是20年前的事了。虽然时间是最强大的重构工具,连书里的示例语言都从Java变成JavaScript了,但书中的理念和实践的价值并没有随时间流逝。这充分证明,即使在日新月异的IT技术世界里,不变的东西其实还是有的,这种书才是真正的经典,是技术人员应该优先研读并一读再读的。

——刘江,美团技术学院院长

“对于软件工程师来说,重构,并不是额外的工作,它就是编码本身。”直到我读过《重构》,并经过练习,才真正理解到这一点。真希望自己在20多年前写第一个软件时,就能读到这本书,从而能节省出大量调试或重复研究代码的时间。20年过去了,《重构》这本书也根据当前软件设计及相关工具的发展进行了一部分修订,更加贴近当前的软件开发者。希望更多的软件工程师能够应用这一技术节省出更多的时间。

——乔梁,腾讯高级管理顾问、《持续交付2.0》作者

重构是一项被低估了的技术能力。说起来,重构就是“不改变外在行为,而提高代码质量”这么简简单单的一句话,但其带来的影响却非常深远:它使我们在解决问题时可以放心地“先做对,再做好”——这种思路本身就可以极大地简化问题;它使我们消除无谓的意气之争——“所谓好,就是更少的坏味道”。我由衷地认为,切实地读懂了《重构》的程序员,在能力上都会获得一个数量级的提升。

——徐昊,ThoughtWorks中国区技术总监

当我还是编程菜鸟,想写出漂亮的代码而不得门道的时候,《重构》这本书就告诉了我,其实高手的代码也不是一次书就的,只要按这本书里的方法去做,谁都能把代码写得那么好;当我还是职场新人,没来得及写出太多垃圾代码的时候,这本书就教会了我,应该去追求编写人能够读懂的而不是仅机器能够读懂的代码。多年以后的某时某刻,当你编码自信而敏捷,因代码清晰而受人尊重时,你会庆幸读过这本书,你也会有些遗憾,应该再早一点去读这本书。无论过去了多少年,这本书,一直值得推荐。

——阎华,京东7FRESH架构师

在大获成功的《重构》第1版里,Martin Fowler传达的核心理念是:代码会随时间流逝而烂掉。写得再好的程序代码,若是发布了就一直保持原样,照样会风化、破碎乃至分崩离析。这是客观规律,避免这种命运的唯一出路是持续重构。要想成为高素质的软件工程师,必须认识这一点。

20年之后,Martin Fowler用现身说法证明,经典的《重构》也会变得不合时宜,也需要重构。如今,不但讲解语言从Java改成了JavaScript,原来的重构示例也做了很多调整,新增了15个示例,更重要的是,新版示例不再那么“面向对象”,应当会收获更广泛的读者群。

软件不死,重构不歇。

——余晟,《代码整洁之道:程序员的职业素养》译者

随着软件项目日积月累,系统维护成本变得越来越高昂是互联网团队共同面临的问题。用户在使用互联网系统的过程中,遇到的各类运行错误或者不可访问故障,以及开发团队面临的历史系统不可维护问题,很多时候是代码初次开发过程中各种细小的不规范引起的。持续优化已有代码是维护系统生命力最好的方法。《重构》是我推荐团队必读的技术图书之一。

——杨卫华(Tim Yang),微博研发副总经理

软件行业已经高速发展数十年,就好似一个崭新的城市,从一个个村屋矮房到高楼林立。而你的代码库就好比你手下的一个房间、一幢平房、一条街道、一片社区乃至是一座摩天大楼。作为一本经典的软件开发书籍,《重构》告诉我们的不仅仅是如何推倒重建、清理、装修,而是像一个规划师一样从目的、成本、手段、价值等综合维度来思考重构的意义。在开发业务的同时,《重构》常伴我左右,警醒我如何写出更有价值的软件。

——阴明,掘金社区创始人

重构,是一个优秀程序员的基本功,因为没人能保证其代码不随时间腐化,而重构会让代码重新焕发活力。整个软件行业对重构的认知始于Martin Fowler的《重构》,这本书让人们知道了“代码的坏味道”,见识到了“小步前行”的威力。时隔20年,Martin Fowler重新执笔改写《重构》,20年间的思维变迁就体现在这本书里,在第1版中,我们看到的是当时方兴未艾的面向对象,而第2版则透露出函数式编程的影响。如果说有什么程序员进阶秘笈,那就是不要错过Martin Fowler的任何一部著作,更何况是已经由时间证明过的重要著作《重构》的新版!

——郑晔,火币网首席架构师

如果看完本书,就兴冲冲地想要找一些代码来重构,那你可能就陷入某种“自嗨”之中了。

了解本书中列出的那些坏味道,不仅仅可以发现代码中的那些坏味道,更可以鞭策自己以及整个团队:在一开始的时候,就不写或者少些那种味道很坏的代码。还应该激励自己,深入地理解架构、理解业务、理解需求,减少因设计失误而导致徒劳无益地反复重构。

重构也是有成本的,所以应该思考如何降低重构的成本。我推荐每一个程序员都来学习“重构”这门手艺。因为学习《重构》,是为了减少“重构”!

——庄表伟,开源社理事、执行长,华为云DevCloud高级产品经理

总之,这部经典,用方方面面的实力,等着征服你。

02

《重构(第2版)》如何读?


本书是一本为专业程序员编写的重构指南。目的是告诉你如何以一种可控且高效的方式进行重构。你将学会如何有条不紊地改进程序结构,而且不会引入错误, 这就是正确的重构方式。

本书的目标读者是专业程序员,也就是那些以编写软件为生的人。书中的范例和讨论,涉及大量需要详细阅读和理解的代码。这些例子都用JavaScript写成,不过这些重构手法应该适用于大部分编程语言。为了理解书中的内容,读者需要有一定的编程经验,但需要的知识并不多。

尽管本书的关注对象是代码,但重构对于系统设计也有巨大影响。资深设计师和架构师也很有必要了解重构原理,并在自己的项目中运用重构技术。最好是由有威望的、经验丰富的开发人员来引入重构技术,因为这样的人最能够透彻理解重构 背后的原理,并根据情况加以调整,使之适用于特定工作领域。如果你使用的不是 JavaScript而是其他编程语言,这一点尤其重要,因为你必须把将书中给出的范例用其他编程语言改写。

如果你的时间紧张,如何能够在不通读全书的情况下充分用好它?

■如果你想知道重构是什么,请阅读第1章,其中的示例会让你弄清楚重构的过程。

如果你想知道为什么应该重构,请阅读前两章,它们会告诉你重构是什么以及为什么应该重构。

■如果你想知道该在什么地方重构,请阅读第3章,它会告诉你一些代码特征,这些特征指出“这里需要重构”。

■如果你想着手进行重构,请完整阅读前四章,然后选择性地阅读重构名录。 一开始只需概略浏览列表,看看其中有些什么,不必理解所有细节。一旦真正需要实施某个重构手法,再详细阅读它,从中获取帮助。列表部分是供查 阅的参考性内容,你不必一次就把它全部读完。

■从第5章往后的篇幅就是本书的核心部分——重构名录。尽管不能说是一份巨细靡遗的列表,却足以覆盖大多数开发者可能用到的关键重构手法。作者曾说:”这份重构名录的源头是20世纪90年代后期我开始学习重构时的笔记,直到今天我仍然不时查阅这些笔记,作为对我不甚可靠的记忆力的补充。每当我想做点什么——例如拆分阶段 (154)——的时候,这份列表就会提醒我如何一步一步安全前进。我希望这是值得你曰后一再回顾的部分。“

给形形色色的重构手法命名是编写本书的重要部分。合适的词汇能帮助我们彼此沟通。当一名开发者向另一名开发者提出建议,将一段代码提取成为一个函数,或者将计算逻辑拆分成几个阶段,双方都能理解提炼函数(106)和拆分阶段(154)是什么意思。这份词汇表也能帮助开发者选择自动化的重构手法。


03

如何成为《重构(第2版)》首批读者?

说了这么多,是不是特别想成为《重构(第2版)》中文版的首批读者?


下面一定要仔细阅读哦~

【活动详情】我们希望在它和读者朋友们正式见面之前,组织一次特别的读书分享活动。寻找首批《重构(第2版)》的有缘人。

只需要扫描海报上的二维码回答几个简单的问题,就可以参与到我们的活动中来。我们会从所有参与者中,筛选50位抢读人,发送《重构(第2版)》的专属迷你电子书,并邀请你加入第一批《重构(第2版)》读书会。

什么是【专属迷你电子书】?迷你电子书节选自《重构(第2版)》的12个章节,内容为重构的经典案例部分,单本厚度80页左右,首季限量50册,阅读与收藏价值兼备。

你只需要在读完我们为你精选《重构(第2版)》迷你电子书后,在豆瓣本书页面(也可扫描下方二维码)下发布150字以上的书评,活动结束后(3月20日12点为书评最后截止时间),我们将评选10个优秀书评赠送《重构(第2版)》精装版纸书一本



异步君,和《重构(第2版)》,在这里等你哦!

- END -

异步图书

聊聊图书背后的故事

转载于:https://juejin.im/post/5c7f55276fb9a049d132e5bb

做《重构(第2版)》中文版的首批读者相关推荐

  1. WCF服务编程(4):《WCF服务编程》第3版中文版翻译结束,即将出版

    原文地址: <WCF服务编程>第4版本翻译完毕!2016年底应该出版 [置顶]↑ WCF服务编程(4):<WCF服务编程>第3版中文版翻译结束,即将出版 ↑ 作为世界范围内最经 ...

  2. C Primer Plus(第5版)中文版

    1. 在声明一个简单变量和数组时使用关键字const很简单.指针则要复杂一些,因为不得不把让指针本身成为const与让指针指向的值成为const区分开来.下面的声明表明pf指向的值必须是不变的: 但p ...

  3. Android简易音乐重构MVVM Java版 -搭建项目(八)

    Android简易音乐重构MVVM Java版 -搭建项目(八) 关于 新版本配置 网易云音乐api版本更新 重构代码 新建app类继承Application 项目结构 定义BaseActivity. ...

  4. C Primer Plus第六版(中文版)编程练习答案(完美修订版)汇总

    //本文是博主编写的C Primer Plus第六版(中文版)编程练习答案的所有链接; //使用超链接汇总于此,若是有用请点赞收藏并分享给他人; C Primer Plus 第六版(中文版)第二章(完 ...

  5. 会声会影2021旗舰版中文版 V24.0.1.260 免费下载 /2022/ 2023专业中文版

    会声会影2021/2022/2023旗舰版是一款非常专业的电脑视频编辑软件.该旗舰版推出全新的2023版本,在功能上基于2022版本有了一个长足的进步,为广大用户提供了上百种滤镜和特效.调控速度.从多 ...

  6. python cookbook pdf下载-Python Cookbook 第3版 中文版.pdf

    作 者 :(美)比斯利,(美)琼斯著 出版发行 : 北京:人民邮电出版社 , 2015.05 ISBN号 :978-7-115-37959-7 页 数 : 684 原书定价 : 108.00 开本 : ...

  7. 使用NUnit做单元测试(总结版)

    使用NUnit做单元测试(总结版) [按:有关于NUnit的详细介绍请见:<NUnit2.0详细使用方法 >http://confach.cnblogs.com/archive/2005/ ...

  8. C++Primer Plus第6版C Primer Plus第6版 中文版免费分享啦

    最近在学习C++,用的资料是师兄分享的经典书籍<C++Primer Plus第6版中文版>的PDF,自带书签,使用很方便.但师兄说这个是他在网上花了积分才下载下来的,这让我很是吃惊,因为作 ...

  9. python学习手册-Python学习手册(第4版) 中文版.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspPython Python学习手册(第4版) 中文版.pdf11 ...

最新文章

  1. WindowsXP中修改本地路由表
  2. Javascript JSON 序列化和反序列化
  3. volta架构 微型计算机,性能大爆炸 NVIDIA新GPU架构曝光
  4. activiti动态办理人_安全生产许可证办理相关问题
  5. 对称密码和非对称密码体系_密码学类型:对称和不对称
  6. 使用英文做LDA建模
  7. 二 vue环境搭建
  8. 广东中国科学院计算机网络信息中心,中国科学院
  9. RuoYiConfig中加入自定义属性值获取不到解决办法?
  10. 使用mybatis的resultMap进行复杂查询
  11. 常用模块以及常用方法
  12. 嵌入式linux串口编程(二)
  13. red5流媒体服务器系统,red5 流媒体服务器配置
  14. 生信技能树 WES分析教程学习(1)conda安装软件,配置环境
  15. linux 下令chmod 755的意思
  16. mac分区合并APFS容器
  17. 深度学习:乳腺检测abnormality detection in mammography +CAM
  18. 云服务器无法访问解决办法
  19. background背景色
  20. 排序--Bubble的三种优化

热门文章

  1. Tomcat启动不成功提示:windows不能在本地计算机启动Apache Tomcat
  2. 【学术渣杂谈】CCF-A类会议汇总(人工智能方向)
  3. bat批量剪切命令_Windows批量搜索并复制/剪切文件的批处理程序实例
  4. shell编程(六) : [shell基础] 基本shell脚本
  5. bios添加slic激活win7
  6. 【Metashape精品教程8】减少误差——优化和相机校准
  7. 2021牛客暑期多校训练营9 Cells(LGV引理,FFT)
  8. 国际绝对音名十二等律标准对照音高频率的宏定义(32位无符号整型精度、十二等律体系、A4=440.01000Hz)
  9. 笔记-车联网环境下交叉口速度引导
  10. 分享一些我喜欢的软件工具(陆续补充更新中)