`
victorpan
  • 浏览: 26104 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

重构 – 改善既有代码的设计

阅读更多

又是一本E文书,花了比中文书3倍的时间去看它,不过怎么说多看E文有好处,对于国内的人的翻译也不放心,当年的《设计模式》中文版让我看得吐血,后来还是买了E文原版,两本书对照着看。虽然慢点,但是买E文书还是有好处地,特别是这样的经典图书。

在看它之前,对于重构也略知一二,包括基本的原则和实现的方式,但是一直没有系统而全面的看重构的意义和实现方法,它更像是一本重构的普及教材,同时又是作者的经验总结,在大家没有重视的时候,他能够跳出来强调重构的意义和实现,真是难得。

首先说一下看这本书的前提,个人感觉是需要有三个条件:

1.
熟悉Java或者其他面向对象的程序设计语言,如果没有,那么这本书到第五章来说就已经结束了。
2. 熟悉设计模式,最好看过GOF。不熟悉设计模式,对于很多例子还是不会理解的。
3. 要有面向对象设计和开发经验,对于没有经验的人来说,这本书是没有意义的。

其实这本书帮我解决最大的问题是认识了重构的真正意义,就是“自上而下的设计”。之前一直的困惑就是需求的变更,所以总是费尽心机去寻找能够适应所有变化的一种设计,这种之上而下的设计方式,是非常脆弱的,在实际开发中会遇到很多问题。期望需求不发生变更,所有的设计都能够被落实,这种事情只有在教科书里面才会有,现实的商业环境是绝对不现实的。所以既然不能指望需求不变更,那就让你随便变,然后我随便做,做好以后在做设计,特别喜欢这句话:
“The first time you do something, you just do it. The second time you do something similar, you wince at the duplication, but you do the duplication thing anyway. The third time you do something, you refactor.” – by Don Roberts.
明确了意义就要知道它的目的是什么?“To restructure software by applying a series of refactoring without changing its observable behavior. ” 两层意思:1.让软件更加容易的理解和变更。2. 不改变软件本身的功能,即不加功能也不减功能。

什么时候是最好的重构时机?
1. 当添加要功能的时候。
2. 当你修理一个bug的时候。
3. Code Review的时候。

重构的基本操作对象:
1. 方法本身,分拆,合并,变量,参数调整等。2. 对象间内容的移动,类的分拆,方法,变量的移动,委托等方法。3. 组织数据:数据结构的调整也是重构中的重要部分。4. 条件表达式和方法的调用。5. 利用面向对象的特点,泛化的使用。这些都是小地方的调整。中间还有一一章是关于大的重构方式,感觉还是要根据实际情况和自己的经验来。另外一个感觉就是,其实很多作者提到的方法,其实在JAVA的变化中已经用更好的方式实现了(作者写的时候JAVA1.2,现在已经是1.6了)比如说,assert的方式,在1.4的时候就已经在JAVA中内建了这个功能。

总体来说这本书是非常经典的一本书,唤醒了大家对重构的重视,但是重构是一个很大的课题,理解他的意义是远远不够的,关键还是在于知道在什么时候用什么方法来进行重构,这个需要开发人员有这个能力去做,管理人员肯花时间让这么做。其实最大的压力也就是在管理这方面,做新功能看得见,重构看不见。开发人员的能力是另外一个问题,其实很多的问题是可以在开发过程中避免的,重构能够让开发人员学到很多的东西,这个相辅相成循环,可以是良性的,而反之则可能是恶性的一个循环。

分享到:
评论

相关推荐

    重构_重构_改善既有代码_

    《重构:改善既有代码设计》是一本由Martin Fowler所著的经典IT著作,它详细阐述了在软件开发过程中如何通过重构来提升代码质量、可读性和维护性。重构是一种系统性的方法,旨在不改变软件外在行为的前提下,改进其...

    重构改善既有代码的设计第2版.pdf

    重构改善既有代码的设计第2版.pdf 本书主要讨论了如何通过重构来改善既有代码的设计,提高代码的可维护性、可读性和可扩展性。下面是对书中重要的知识点的总结: 1. 重构的定义和重要性:重构是指对既有代码的修改...

    重构_改善既有代码的设计 Java

    《重构:改善既有代码的设计》是一本在IT领域广受推崇的经典著作,专注于软件开发中的重构实践,尤其针对Java编程语言。重构是软件开发过程中的一个重要环节,它旨在提升代码的可读性、可维护性和整体质量,而不会...

    重构-改善既有代码的设计

    一直很喜欢重构这本书,但是由于自己记性不太好,书看过之后其中的方法总是记不住,于是想如果有电子版的重构书就好了,工作中遇到重构的问题可以随时打开查阅。在网上搜索了许久,发现重构这本书有英文chm版本的,...

    重构改善既有代码的设计PPT课件

    重构是软件开发过程中的一个重要环节,它关注于改善已有代码的设计,以提高代码的可读性和维护性,同时保持原有功能不变。通过重构,程序员能够更有效地管理代码,提升开发效率,减少错误,并促进团队成员之间的沟通...

    重构 改善既有代码的设计 中文高清完整版pdf

    ### 重构:改善既有代码的设计 #### 书籍概述与核心价值 《重构:改善既有代码的设计》这本书由Martin Fowler撰写,是一本关于软件工程领域的经典著作。它详细介绍了如何通过一系列小步骤对现有代码进行改进,进而...

    重构-改善既有代码的设计

    《重构-改善既有代码的设计》是一本专注于Java编程领域的经典著作,主要探讨了如何通过重构技术来提升既有代码的质量和可维护性。重构是软件开发过程中一个至关重要的环节,它旨在不改变代码外在行为的前提下,改进...

    重构 改善既有代码的设计 pdf 中文

    重构 改善既有代码的设计 pdf 中文

    英文版(重构改善既有代码的设计)

    ### 重构:改善既有代码的设计 #### 知识点概览 重构是一种系统性的方法,旨在改进现有软件系统的内部结构而不改变其外部行为。通过重构,可以提高代码的质量、可维护性和可扩展性。《重构:改善既有代码的设计》一...

    重构:改善既有代码的设计

    重构:改善既有代码的设计 中文PDF清晰版 Martin Fowler和《重构:改善既有代码的设计》(中文版)另几位作者清楚揭示了重构过程,他们为面向对象软件开发所做的贡献,难以衡量。《重构:改善既有代码的设计》(中文版)...

    重构 _改善既有代码的设计(中文版) pdf

    《重构:改善既有代码的设计》是一本由Martin Fowler撰写的经典软件工程书籍,其核心思想是通过一系列小的重构步骤来改善和优化既有代码的质量。在软件开发领域中,重构是一个重要的技术,它可以帮助开发人员提升...

    《重构改善既有代码的设计(中文版)》(Martin Fowler[美] 著,候捷、熊节 译)

    Martin Fowler和《重构:改善既有代码的设计》(中文版)另几位作者清楚揭示了重构过程,他们为面向对象软件开发所做的贡献,难以衡量。《重构:改善既有代码的设计》(中文版)解释重构的原理(principles)和最佳实践...

    重构-改善既有代码的设计(良心资源)

    《重构-改善既有代码的设计》是一本在软件开发领域具有深远影响的经典著作,由马丁·福勒撰写。这本书深入探讨了如何通过一系列微小而精确的步骤改进已有的代码结构,提升代码质量,同时保持软件功能不变。这些步骤...

    [免费PDF高清]重构-改善既有代码的设计+中文版. 侯捷.熊节.rar

    《重构:改善既有代码的设计》是由马丁·福勒(Martin Fowler)所著的一本经典IT著作,中文版由侯捷和熊节翻译。这本书详细探讨了软件开发过程中的一个重要环节——重构,即在不改变软件外部行为的前提下,通过改进...

    《重构-改善既有代码的设计》

    《重构:改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法...

    《重构:改善既有代码的设计》

    《重构:改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式, 并给出了何时以及何地应该开始挖掘代码以求改善。 书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换...

Global site tag (gtag.js) - Google Analytics