`
fanjf
  • 浏览: 329564 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

重构的定义

阅读更多
.重构原则
 
1.重构的定义
重构(名词):对软件内部结构的一种调整,目的是在不改变"软件之可察行为"前提下,提高其可理解性,降低其修改成本.
重构(动词):使用一系列重构准则(手法),在不改变"软件之可察行为"前提下,调整其结构.
两种定义都强调是在不改变"软件的外部行为"前提下,不改变"软件之可察行为"就是说让修改不影响外部使用程序(程序员),在个外部来看,程序的行为和结果没有任何的变化.重构只是对程序内部结构进行调整,让代码更加容易理解,然后更容易维护.
 
2.重构的好处
能改进软件设计
使软件更容易被理解
能帮你找到bug
提高软件的开发速度
 
3.什么时候进行重构
三次法则:事不过三,三则重构.意思是说,一件事情,第一次只管去做,第二次做类似的事情会产生反感,但无论如何还是做了,第三次再做类似的事情,你就应该重构.
在添加新功能时进行重构.
在修改bug时进行重构
在代码复审时进行重构.
 
4.为什么重构有用
难以修改的程序具有以下特征:
难以阅读的程序,难以修改
逻辑重复的程序,难以修改
添加新行为时需要修改现有的代码,难以修改
带复杂条件逻辑的程序,难以修改
好的程序应该是:
容易阅读
所有逻辑都只在惟一地点指定
新的改动不会危及现有的行为
尽可能简单的表达条件逻辑
 
5.间接层和重构
间接层的存在的价值:
允许逻辑共享
分开解释意图和实现
将变化加以隔离
将条伯逻辑加以编码
但是过多的间接层会导致代码的层次太深,使代码难以阅读.因些要权衡加入间接层的利弊.
 
6.重构的难题
关系数据库与面向对象编程的问题:在对象模型和数据库模型之间插入一个分隔层,这就可以隔离两个模型各自的变化.升级某一模型时无需同时升级上述的分隔层即可.这样的分隔层会增加系统复杂度.但是能增加灵活度.
修改接口的问题:修改已发布的接口,因为已发布的接口会供外部人员(其它公司)使用,因此,修改接口会导致引用接口的其它程序不修改程序就无法运行.修改接口的最好的办法是增加一个新的接口,让旧接口调用新接口.这样原来的程序就不用修改了.对于接口的另一个建议是心尽量不要发布接口.
 
7.什么时候不进行重构
现有的程序无法运行,此时应该是重写程序,而不是重构
程序到了最后的交付期限
 
8.重构与设计
重构与设计是互补的,程序应该是先设计,而在开始编码后,设计上的不足可以用重构来弥补.设计应该是适度的设计,而不必过度的设计.如果能很容易的通过重构来适应需求的变化,那么就不必过度的设计,当需求改变时再重构代码.
 
9.重构与性能
提高性能的三种方法:
时间预算法:在设计时就对程序花费的时间进行预算,通常用于性能要求极高的实时系统.普通的企业应用程序一般对性能要求不高.只要不太慢就可以了.
持续关注法:要求程序员在任何时间都要设法保持系统的高性能.这个方法有个缺陷,就是大部分的程序90%的优化工作都是白费劲,这样会浪费大量的时间.
良好的分解方式:这个方式是在开发程序阶段不对性能投以任何关注,直到进入性能优化阶段,再分析程序中性能差的程序,然后对这些程序进分解,查出性能差的程序,进行优化.
分享到:
评论

相关推荐

    22-08-17-063_JsonTable(重构定义Jquery DataTables)

    通过对Jquery DataTables插件的重构定义实现表的无刷新查询、删除、添加和编辑等操作

    22-08-19-064_JsonTable(Nop后台重构定义Jquery DataTables)

    通过nopCommerce后台类方法,对Jquery DataTables插件的重构定义实现表的无刷新查询、删除、添加和编辑等操作

    重构英文版

    1. **重构定义**:重构是一种在不改变代码外在行为的前提下,对代码做出修改以改善其内部结构的过程。这个过程强调的是内在质量和可维护性,而非添加新功能或修复错误。 2. **重构的重要性**:随着项目的发展,代码...

    JAVA系统重构

    **重构定义**:重构是一种对现有代码进行改进的技术,其目标在于不改变程序外部行为的前提下优化内部结构,提高代码可读性和可维护性。 **起源与发展**:重构概念最早源于Smalltalk社区,并逐渐扩展到其他编程语言...

    重构 refactoring 英文 有书签

    1. **重构定义**:重构是指在不改变软件外部行为的前提下,对其内部结构进行调整以提高代码质量的过程。 2. **重构的重要性**:重构有助于提升代码的可读性、可维护性和可扩展性,从而降低后续开发和维护的成本。 3....

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

    1. **重构定义**: - 重构是指在不改变外部行为的前提下,对代码进行结构上的调整,以提高其内部质量的过程。 - 通俗地说,就是让代码变得更好,更易于理解,同时保持功能不变。 2. **何时重构**: - Martin ...

    重构与模式 中文

    #### 重构定义及其重要性 重构是指在不改变软件外部行为的前提下,对软件内部结构进行调整的过程。这一过程旨在提高代码的可读性、可维护性和可扩展性,减少技术债务,并为后续开发提供更好的基础。重构活动包括但...

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

    1. **重构定义**:重构是不改变代码外在行为的情况下,对代码进行修改以改善其内部结构的过程。它旨在提高代码的可读性、可维护性和设计质量。 2. **动机与好处**:重构的主要动机包括提高代码可读性,减少错误,...

    重构项目实例

    1. **重构定义**:重构是对现有代码的微小修改,这些修改不会改变软件的外在行为,但会改善其内部结构,使得代码更易理解,更容易维护。这是为了应对代码的复杂度增长和未来的需求变化。 2. **动机与原则**:重构...

    重构——提高现有代码的质量

    1. **重构定义**:重构是不改变代码外在行为的前提下,改进代码的结构,使其更容易理解和修改。这个过程包括识别代码中的坏味道(code smell)并应用一系列小的、精确的改进步骤。 2. **重构的重要性**:重构有助于...

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

    1. **重构定义**:重构是不改变代码外在行为的前提下,对代码进行修改以提高其内部结构,使代码更容易理解,且更易于修改。这种过程可以提高代码质量,降低维护成本。 2. **动机与原则**:重构的动机源于对软件演进...

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

    1. **重构定义**:重构是对代码的微小改进,不改变其外在行为,但改善其内部结构,使其更容易理解和修改。它强调的是在保持软件功能不变的前提下,提升代码的清晰度和设计质量。 2. **重构动机**:当代码变得难以...

    重构-改善既有代码的设计(高清版).zip

    1. **重构定义**:重构是指在不改变代码外在行为的前提下,对代码结构进行改进,使其更容易理解和修改。这个过程通常伴随着单元测试,以确保在修改过程中不会引入新的错误。 2. **重构的重要性**:随着项目的推进,...

    数据中心2013:硬件重构&软件定义

    数据中心2013年的技术趋势主要集中在硬件重构和软件定义两个方面,它们分别代表了数据中心硬件和软件领域的创新和发展方向。 硬件重构主要解决了数据中心的可扩展性问题。在云计算时代,数据中心面临着巨大的数据...

Global site tag (gtag.js) - Google Analytics