文章吧-经典好文章在线阅读:重构(第2版)全彩精装版读后感10篇

当前的位置:文章吧 > 经典文章 > 经典美文 > 经典精选 >

重构(第2版)全彩精装版读后感10篇

2019-08-08 23:32:01 来源:文章吧 阅读:载入中…

重构(第2版)全彩精装版读后感10篇

  《重构(第2版)全彩精装版》是一本由Martin Fowler著作人民邮电出版社出版的精装图书,本书定价:168,页数:422,特精心网络整理的一些读者读后感希望大家能有帮助

  《重构(第2版)全彩精装版》读后感(一):让重构成为一种代码习惯

  无论你是初出江湖编码小农,还是深耕多年的程序大牛,这本书都值得你深度品读

  常常我们说的代码简洁性、易读性、健壮性,都并非一日之功需要在日常的迭代中不断持续的进行重构,重构的事情我们常常挂在嘴边,却往往无从下手,本书以作者丰富的编程经验思想总结了一套非常实用的重构的基本方法准则,让你更好的理解重构的思想精髓,找到适合自身以及团队的代码整洁之道!

  《重构(第2版)全彩精装版》读后感(二):重构,可以的!

  读过设计模式相关书籍,而后读重构第一版。如今读了重构第二版的精简版的前7个章节,依旧收获不小。重构给我的感受绝非高深莫测技术手段,而是对于编程这件小事儿的感悟软件项目工程建筑工程有一个很大的不同点,那就是代码可以重构,程序员可以在不断的迭代中逐渐完善自己的代码。几乎没有程序员能够在一开始就洞穿整个项目的始末更何况需求是不断变化的,这种不确定性与不可控性迫使我们必须在变化中应对变化。重构给了程序员“改过自新”的机会。Java多态替代Switch语句提炼函数、内联变量、自己的命名风格测试驱动一步一个脚印、、、当你一点点的重构那些具有坏味道的代码时,最后定会有焕然一新感觉,代码变得愈发通俗易懂善解人意。作者字里行间流露出的是对编程的热爱情怀。程序员应该对代码负责。编程之道,亦是生活之道。人生轨迹也是在不断的重构中谱写,欲速则不达,给生命宽阔广度去延拓、待人以清新简洁的面貌,让生命的篇章在重构中愈发有好味道!

  《重构(第2版)全彩精装版》读后感(三):了解重构

  什么是重构?

  所谓重构(refactoring)是这样一个过程:在不改变代码外在行为前提下,对 代码做出修改,以改进程序的内部结构。重构是一种经千锤百炼形成有条不紊的程 序整理方法,可以最大限度地减小整理过程中引入错误概率本质上说,重构就是 在代码写好之后改进它的设计。

  重构精髓

  重构的每个步骤都很简单,甚至显得有些过于简单: 只需要把某个字段从一个类移到另一个类,把某些代码从一个函数 拉出来构成另一个函数,或是在继承体系中把某些代码推上推下就行了。但是,聚沙 成塔,这些小小的修改累积起来就可以根本改善设计质量。这和一般常见的“软件会 慢慢腐烂”的观点恰恰反。

  重构过程带来的收益

  有了重构以后,工作平衡点开始发生变化。我发现设计不是在一开始完成的, 而是在整个开发过程中逐渐浮现出来。在系统构筑过程中,我学会了如何不断改进设 计。这个“构筑 - 设计”的反复互动,可以让一个程序在开发过程中持续保有良好的设计

  《重构(第2版)全彩精装版》读后感(四):《重构》(第2版) 书评~(迷你书读者)

  《重构第二版》书评

  我非常开心能够通过异步社区发送的迷你书成为了《重构》第二版的首批读者,当我收到来自异步社区刘鑫同学邮件之后就开始了阅读,几天时间读完了前6章,有一些感悟和大家分享

  有一句非常古老的工程谚语“如果它还可以运行,那就不要动它。”,但是正如Martin在前言里所写的那样,遵循这样的建议,这个项目在6个月后最终走向失败。我目前还在高校研究软件工程理论,和工业界看待工程问题角度不同,学术界关心软件工程高层抽象的问题,换句话说学术界不关系某个特定场景下的解决方案,而关心能够顶层的设计,因此在学术界研究软件工程和软件架构更多的是思考如何“更好”或者“更优美”地进行设计,而在最近一年的时间里面,我们的课题走访了近20个向微服务架构迁移的软件研发公司,他们的现状就是:需要保证业务不会受到影响情况实现重构,一个不是非严谨比喻就是“在高速公路上为汽车轮胎”,业务高速发展不能停滞,而如果不及时重构软件系统,那么最终将会像Martin在书中描述一样,最终“代码太复杂,无法调试,也无法将性能调优到可接受水平”。因此,重构是一门软件艺术

  此外,在《重构》的第二版中,第三章 代码的坏味道,也就是Bad Smell,这正是目前对于架构进行评估的所需要的各个关键点所在。《重构》的第二版不仅仅是对于第一版的修改和完善,Martin几乎完全重写了这本书,在文中也不乏直接与第一版的《重构》进行对比部分,对于老读者而言,也能够找到新的亮点

  总结而言,Martin的这本《重构》第二版值得我们用时间和精力去品读和学习

  《重构(第2版)全彩精装版》读后感(五):<重构 改善既有代码的设计 第2版>读后的个人感受

  首先感谢异步社区, 有缘读到由异步社区发起的《重构 改善既有代码的设计 第2版 》。让在来聊聊我对《重构》的感情。在我开发的8年时间里Martin Fowler的《重构》从2015年开始就一直陪着我,是我工位上的一本常用工具书指导书。使我在技术上和思维上得到提升。每一次读都有不一样的感受。在每一次的系统代码根据公司业务需要更改的时候我就会想起Martin Fowler老师的《重构》。

  Martin Fowler在1.3章节中说道“每当我要进行重构的时候,第一个步骤永远相同:那就是我得确保即将修改的代码拥有一组可靠的测试。而这些测试必不可少,因为尽管遵循重构手法可以使我避免绝大多数引入Bug情形。”

  然后问自己,何谓重构?为何重构?何时重构?现在重构会给现在的系统造成的利弊?就像我去写一个功能的时候,刚开始没有去做封装,用到一个地方就要去写一次,我在好多地方用到了都要去写,当我抽取出来封装成函数,我在要用的地方直接去调取它,这样的重构帮我提高了编程速度和提高了代码的质量。但在重构的过程中我也是快乐挑战,快乐是以后开发和读代码更加舒服,挑战是重构不是一件简单的事情,需要去做好各项准备因为像作者提到“重构过程中有一二两时间不可用”。

  重构是很多价值工具,但只有重构还不行。重构前,先检查自己是否有一套可靠的测试机制。这些测试必须有自我检验能力,毕竟重构可能破坏掉一些东西,我们要靠测试帮助我们发现这些问题,不要因为测试无法捕捉所有bug就不写测试, 因为测试的确可以捕捉到大多数bug。不过,说来惭愧,我在写php项目的时候写测试用例写的比较少,但在Java项目上写的还可以。

  所以我经过Martin Fowler的《重构》和自己的一点小总结,像函数过长、参数过多、类过大、修改一个小功能,要对多个类进行修改、switch语句等这样的我就考虑需要重构。当我在Review代码、修改Bug、增加新功能的时候来重构。而我最基本的重构方法是细化方法,更小颗粒度、方法移动到别的类、抽象出新的类、内部类。

  我个人力荐的技术书籍之一Martin Fowler的《重构》,它可以说是我作为程序员进阶的秘籍,何况它是已经由时间证明过的重要著作《重构》的新版上市。

  《重构(第2版)全彩精装版》读后感(六):Hi, 重构 (迷你书读者)

  重构,认识很高兴

  惨痛教训

  认识你之前,维护已有的代码,我坚信只要代码能够正确运行,测试不提 bug, 能不动原代码尽可能的不动原代码。结果,原项目越来越庞大,越来越臃肿,漫天飞舞着各种无效,重复的代码,这还是一个好的消息,坏的消息是,我发现一个错误的时候,我不得不去查找整个项目中是否还存在一样的代码。对此我乐此不疲

  认识你之前,我一直认为重构很鸡肋的,因为我觉得重构就是对整个工程重新设计,代码完全重写,这就意味前人努力都是白费,公司前期的投入都打水漂了,总而言之就是工程量大,费时成本高。尽管如此,以往的开发中,我也会尽可能的推动项目进行我所谓的重构。结果,虽不再有各种无效与重复的代码,但是 bug 层出不穷,如雨后春笋,灭了一茬又一茬,不过是将一堆已知的 bug 换成了一堆未知的 bug 。

  拨云见月:

  认识你之后,你成功的改变了我固有的思想,让我明白重构并不是将代码完全重写,并不是用一堆未知的 bug 去换一堆已知的 bug。是从一个变量开始到一个函数再到一个类,一步一个脚印,逐步的让代码变得优雅,变得容易维护。重构是可控的,可靠的,以尽可能小的投入换取大的回报

  《重构》 第 2 版,也真正做到了开篇所讲“谈理论很容易流于泛泛,又很难说明如何实际运用,给出一个实例,就可以帮我把很多事情认识清楚”。《重构》大量简单明确的实例剖析,让重构不再处于云端,那么高深莫测,触不可即,js 语音使用照顾了尽可能多的编程者,更加明确了重构是接地气的,是真实的。

  最后,非常感谢异步社区,感谢刘鑫同学,让我认识了 《重构》。

  《重构(第2版)全彩精装版》读后感(七):重读《重构》,呼唤匠艺(译者序)

  2009年,在为《重构》第一版的中译本再版整理译稿时,我已经隐约察觉行业中对“重构”这个概念矛盾张力。一方面,在这个“VUCA”(易变、不确定、复杂、模糊)横行的年代,有能力调整系统的内部结构,使其更具长期生命力,这是一个令人神往期许。另一方面,重构的扎实工夫要学起来、做起来,颇不是件轻松的事,且不说详尽到近乎琐碎的重构手法,光是单元测试一事,怕是已有九成同行无法企及。结果,“重构”渐渐成了一块漂亮招牌,大家都愿意挂上这个名号,可实际上干的却多是“刀劈斧砍”的勾当

  如今又是十年过去,只从国内的情况而论,“重构”概念的表里分离,大有愈演愈烈之势。随着当年的一线技术人员纷纷走上领导岗位,他们乐于将“重构”这块漂亮招牌用在更宽泛环境下,例如系统架构、乃至组织结构,都可以“重构”一下。然而基本功欠缺,却也一路如影随形。当年在对象中的刀劈斧砍,如今被照搬到了架构、组织的调整。于是“重构”的痛苦回忆又一遍遍重演,甚而程度更深、影响更广、为害更烈。

  此时转头看Martin Fowler时隔将近廿载后终于付梓的《重构》第二版,我不禁感叹于他对“微末功夫”的执着。在此书尚未成型之前,我和当时ThoughtWorks的同事们曾有很多猜测,猜Fowler先生是否会在第二版中拔高层次,多谈谈设计乃至架构级别的重构手法,甚或跟随“敏捷组织”、“精益企业”的风潮谈谈组织重构,也未为不可。孰料成书令我们跌破眼镜,Fowler先生不仅没有拔高,反而把工夫做得更扎实了。

  对比前后两版的重构列表,可以发现:第二版收录的重构手法在用途上更加内聚,在操作上更加连贯,更重视重构手法之间的组合运用。第一版中占了整章篇幅的“大型重构”,在第二版中全数删去。一些较为复杂的重构手法,例如复制“被监视数据”、塑造模板函数等,第二版也不再收录。而第二版中新增的重构手法,则多是提炼变量、移动语句、拆分循环、拆分变量这样更加细致而微的操作。这些新增的手法看似简单,但直指大规模遗留代码中最常见的重构难点,正好补上了第一版中阙漏的细节。这一变化,正反映出Fowler先生对于重构一事一贯的态度千里之行积于跬步,越是面对复杂多变的外部环境,越是要做好基本功、迈出扎实步。

  坏味道、测试先行、行为保持的变更动作,是重构的基本功。在《重构》第二版里,重构手法的细节被再度打磨,重构过程比之第一版愈发流畅。细细品味重构手法中的前后步骤,琢磨作者是如何做到行为保持,这是能启发读者举一反三的读书法。举保持对象完整重构手法为例,第一版中的做法是在原本函数上新添参数;而第二版的做法则是先新建一个空函数,在其中做完想要的调整之后,再整体替换原本函数。两相对比,无疑是新的做法更加可控、出错时测试失败的范围更小。

  无独有偶,我在ThoughtWorks时的同事王健在开展大型的架构重构时,总结了重构的“十六字心法”,恰与保持对象完整重构手法在第二版中这个新的做法暗合。这十六字心法如是说:

旧的不变 新的创建 一步切换 旧的再见

  从这个视角品味一个个重构巨细靡遗的做法,读者大概能感受到重构与“刀劈斧砍”之间最根本的分歧。在很多重构(例如最常用的改变函数声明)的做法中,Fowler先生会引入“很快就会再次修改甚至删除”的临时元素。假如只看起止状态,这些变更过程中的临时元素似乎是浪费:为何不直接一步到位改变到完善的结果状态呢?然而这些临时元素所代表的,是对变更过程(而非只是结果)的设计。缺乏对过程的精心设计与必要投入,只抱着对结果的美好憧憬提刀上阵,遇到困难就靠“奋斗精神”和加班解决,这种“刀劈斧砍”不止发生在缺乏审慎的“重构”现场,又何尝不是我们这个行业的缩影?

  是以,重构这门技艺、以及Fowler先生撰写《重构》的态度,代表的是软件开发的匠艺——对“正确的做事方式”的重视。在一个浮躁之风日盛的行业中,很多人会强调“只看结果”,轻视做事的过程与方式。然而对于软件开发的专业人士而言,如果忽视了过程与方式,也就等于放弃了我们自己的立身之本。Fowler先生近廿载对这本书、对重构手法的精心打磨,给了我们一个榜样:一个对匠艺上心的专业人士,日积月累对过程与方式的重视,是能有所成就的。

  十七年前,我以菜鸟之身读到《重构》,深受其中蕴涵的工匠精神感召,在Fowler先生与侯捷老师帮助下,完成了本书第一版的翻译工作。如今再译本书第二版,来自ThoughtWorks的青年才俊林从羽君主动请缨与我搭档合译,我亦将此视为匠艺传承的一桩美事。新一代程序员中,关注新工具、新框架、新商业模式者伙矣,关注面向对象、TDD、重构之类基本功者寥寥。林君年纪虽轻,却能平心静气磨砺技艺,对基本功学而时习,颇有老派工匠之风。当年藉由翻译《重构》一书,我从Fowler先生、侯捷老师身上学到他们的工匠精神,十余年来时时践行自勉。如今新一代软件工匠的代表人物林君接手此书,必会令工匠精神传承光大。

  据说古时高僧有偈云:“时时勤拂拭,勿使惹尘埃”。代码当如是,专业人士的技艺亦当如是。与《重构》的诸位读者共勉。

评价:

[匿名评论]登录注册

评论加载中……