`
409066601
  • 浏览: 31051 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

改善代码质量--重构

阅读更多
首先必须意识到我们需要重构!
    1.概念:
    重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

    2.为什么要重构?
  因为通过重构可以达到以下的目标:
  1)持续偏纠和改进软件设计
   重构和设计是相辅相成的,它和设计彼此互补。有了重构,你仍然必须做预先的设计,但是不必是最优的设计,只需要一个合理的解决方案就够了,如果没有重 构、程序设计会逐渐变质,愈来愈像断线的风筝,脱缰的野马无法控制。重构其实就是整理代码,让所有带着发散倾向的代码回归本位。
  2)使代码更易为人所理解
   Martin Flower在《重构》中有一句经典的话:"任何一个傻瓜都能写出计算机可以理解的程序,只有写出人类容易理解的程序才是优秀的程序员。 "对此,笔者感触很深,有些程序员总是能够快速编写出可运行的代码,但代码中晦涩的命名使人晕眩得需要紧握坐椅扶手,试想一个新兵到来接手这样的代码他会 不会想当逃兵呢?
  软件的生命周期往往需要多批程序员来维护,我们往往忽略了这些后来人。为了使代码容易被他人理解,需要在实现软件功能时做许 多额外的事件,如清晰的排版布局,简明扼要的注释,其中命名也是一个重要的方面。一个很好的办法就是采用暗喻命名,即以对象实现的功能的依据,用形象化或 拟人化的手法进行命名,一个很好的态度就是将每个代码元素像新生儿一样命名,也许笔者有点命名偏执狂的倾向,如能荣此雅号,将深以此为幸。
  对于那些让人充满迷茫感甚至误导性的命名,需要果决地、大刀阔斧地整容,永远不要手下留情!
  3)帮助发现隐藏的代码缺陷
   孔子说过:温故而知新。重构代码时逼迫你加深理解原先所写的代码。笔者常有写下程序后,却发生对自己的程序逻辑不甚理解的情景,曾为此惊悚过,后来发现 这种症状居然是许多程序员常患的"感冒"。当你也发生这样的情形时,通过重构代码可以加深对原设计的理解,发现其中的问题和隐患,构建出更好的代码。
  4)从长远来看,有助于提高编程效率
  当你发现解决一个问题变得异常复杂时,往往不是问题本身造成的,而是你用错了方法,拙劣的设计往往导致臃肿的编码。
  改善设计、提高可读性、减少缺陷都是为了稳住阵脚。良好的设计是成功的一半,停下来通过重构改进设计,或许会在当前减缓速度,但它带来的后发优势却是不可低估的。

    3.那么我们究竟如何去重构?
    这个问题是个很难全面去把握的问题,为什么这样说呢?可以大致从三个方面来理解
    3.1重构与设计
    重构可以从很大程度上去扶助设计,通常情况下我们的设计不是能贯穿我们软件开发的全过程的,在这个过程中,我们的需求变更的可能性非常大,当需求变了,设计也得变,但是我们已有的实现怎么办?全部废除?显然不能!这时候就要依靠重构来解决这种矛盾。
   3.2重构与性能
    关于重构,有一个常被提出的问题:它对程序的性能将造成怎样的影响?为了让软件易于理解,你常会作出一些使程序运行变慢的修改。这是个重要的问题。我并不 赞成为了提高设计的纯洁性或把希望寄托于更快的硬件身上,而忽略了程序性能。已经有很多软件因为速度太慢而被用户拒绝,日益提高的机器速度亦只不过略微放 宽了速度方面的限制而已。但是,换个角度说,虽然重构必然会使软件运行更慢,但它也使软件的性能优化更易进行。关键在于自己的理解,当你拥有了重构的经 验,你也就有能力在重构的基础上来改进程序的性能。
   3.3重构与模式
   那么真正要实现重构时,我们有哪些具体的方法呢?可以这 样说,重构的准则由很多条,见《重构》这本书。但它不是最终的标准,因为你要是完全按照它的标准来执行,那你也就等于不会重构,重构是一种武器,而真正运 用武器的高手是没有武器胜有武器。只有根据实际的需要,凭借一定的思想,才能实现符合实际的重构,我们不能被一些固定的模式套牢了,这样你的程序会很僵 化。究竟如何把握这个度,需要大家去总结。
   3.4重构与思想
   要想实现一个好的重构,不是重构本身,而是我们在写代码的时候, 思想当中时刻有它的位置存在!非常重要!如果你本身就没想着要去重构,那么就是有再好的模式供你调用又怎么样?就是有了好的模式,你不能根据实际的需要去 融会贯通,那你做出来的重构有意义么?大家共同思考一下吧。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hdy007/archive/2007/01/15/1483446.aspx
分享到:
评论

相关推荐

    重构-改善既有代码质量

    《重构-改善既有代码质量》一书是Martin Fowler的经典之作,它深入探讨了如何通过重构技术来提升软件的可读性、可维护性和整体质量。重构是一个系统化的过程,旨在改进代码结构,而不改变其外在行为。在这个过程中,...

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

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

    重构----改善既有代码的设计(完整中文扫描版PDF)

    这些方法是多年来软件开发者在实际工作中逐渐总结出来的经验,目的是为了在不改变系统外部行为的前提下,优化代码结构,提高代码质量。这些重构技术的目的是让已经存在的、可能因缺乏设计而效率低下、难以维护和扩展...

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

    总的来说,《重构-改善既有代码的设计》是一本深入探讨Java重构实践的指南,它教会我们如何通过细致而系统的工作,不断提升代码质量,实现软件开发的可持续发展。无论你是初级开发者还是经验丰富的老兵,这本书都将...

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

    每一种重构都有其特定的应用场景和执行步骤,通过这些具体操作,开发者可以系统地改善代码质量。 此外,书中还强调了重构过程中的一些重要原则,如持续集成、单元测试和设计模式的运用。持续集成确保了重构过程中...

    改善既有的代码重构(ppt)课件

    改善既有的代码重构(ppt),改善既有的代码重构,改善既有的代码重构PPT

    重构----改善既有代码的设计(完整中文扫描版PDF).pdf

    本书讲述重构,即在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

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

    - **重构文化**:培养团队内部的重构文化,鼓励成员之间共享重构经验和技术,共同提高代码质量和团队效率。 总之,《重构:改善既有代码的设计》不仅是一本面向对象编程领域的经典之作,也是每个软件开发者都应该...

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

    重构是一种特殊的代码修改技术,它不会改变程序的外部行为,却可以改善代码内部结构,从而提升代码的可维护性、可读性和可扩展性。在实践重构时,要遵循一些基本原则,比如使用两顶帽子的方法,即在开发过程中既要...

    重构-改善既有代码设计

    通过学习《重构-改善既有代码设计》,开发者不仅能掌握具体的重构技巧,还能培养良好的编程习惯,理解代码质量的重要性,并学会在实际项目中应用这些知识,从而提升整个团队的开发效率和软件质量。无论是初级开发者...

    重构-改善既有代码的设计+中文版.pdf

    马丁·福勒的《重构-改善既有代码的设计》不仅为我们提供了丰富的重构方法和具体的操作指南,还加深了我们对软件开发中代码质量持续改进重要性的理解。随着软件开发方法的不断进步,重构已成为不可或缺的技能,对于...

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

    - **意义**:通过重构可以提高代码质量、增强软件的可读性和可维护性,同时减少后续开发的风险。 2. **基本原则**: - **小步骤原则**:每次只做一点小改动,确保每一步都是安全的。 - **测试先行**:在进行任何...

    重构--改善代码结构

    重构,作为一种重要的软件工程实践,旨在改善...通过持续的重构,不仅可以提升代码质量,还可以促进软件的长期发展。记住,重构的目标永远是为了解决问题,而不是制造问题,所以,明智地选择重构的时机和方法至关重要。

    重构-改善既有代码的设计(含中文PDF,英文chm)

    《重构:改善既有代码的设计》是一本由Martin Fowler所著的经典软件工程书籍,它深入探讨了如何通过重构技术提升代码质量、可维护性和设计的优雅性。这本书对于开发者来说是不可或缺的参考文献,无论是在团队协作...

Global site tag (gtag.js) - Google Analytics