重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。
重构的必要性:重构的重要性要从软件的生命周期说起。软件不同与普通的产品,他是一种智力产品,没有具体的物理形态。一个软件不可能发生物理损耗,界面上的按钮永远不会因为按动次数太多而发生接触不良。那么为什么一个软件制造出来以后,却不能永远使用下去呢?
对软件的生命造成威胁的因素只有一个:需求的变更。一个软件总是为解决某种特定的需求而产生,时代在发展,客户的业务也在发生变化。有的需求相对稳定一些,有的需求变化的比较剧烈,还有的需求已经消失了,或者转化成了别的需求。在这种情况下,软件必须相应的改变。
考虑到成本和时间等因素,当然不是所有的需求变化都要在软件系统中实现。但是总的说来,软件要适应需求的变化,以保持自己的生命力。
这就产生了一种糟糕的现象:软件产品最初制造出来,是经过精心的设计,具有良好架构的。但是随着时间的发展、需求的变化,必须不断的修改原有的功能、追加新的功能,还免不了有一些缺陷需要修改。为了实现变更,不可避免的要违反最初的设计构架。经过一段时间以后,软件的架构就千疮百孔了。bug越来越多,越来越难维护,新的需求越来越难实现,软件的构架对新的需求渐渐的失去支持能力,而是成为一种制约。最后新需求的开发成本会超过开发一个新的软件的成本,这就是这个软件系统的生命走到尽头的时候。
重构就能够最大限度的避免这样一种现象。系统发展到一定阶段后,使用重构的方式,不改变系统的外部功能,只对内部的结构进行重新的整理。通过重构,不断的调整系统的结构,使系统对于需求的变更始终具有较强的适应能力。
通过重构可以达到以下的目标:
1.持续偏纠和改进软件设计
2.使代码更易为人所理解
3.帮助发现隐藏的代码缺陷
4.有助于提高编程效率
何时着手重构:
1.代码中存在重复的代码
2.过大的类和过长的方法
3.牵一毛而需要动全身的修改
4.类之间需要过多的通讯
5.过度耦合的信息链
6.各立山头干革命
7.不完美的设计
8.缺少必要的注释
分享到:
相关推荐
重构的核心概念在于,当代码变得难以理解和维护时,我们需要对其进行整理和优化,使其更清晰、更简洁,同时保持原有的功能。这一过程包括识别代码中的坏味道(code smell)——那些表明代码可能存在潜在问题的迹象,...
在IT领域,稀疏重构算法是信号处理和数据科学中的一个重要概念,特别是在压缩感知理论(Compressive Sensing, CS)中。压缩感知是一种革命性的理论,它表明,如果一个信号可以用较少的非零元素(即稀疏表示)来描述...
#### 一、重构概念解析 重构(Refactoring)是一种软件工程中的重要技术,它指的是在不改变软件系统外部行为的前提下,通过改进其内部结构来提高代码质量的过程。重构的目标是使代码更易于理解、维护和扩展,同时...
数据中心2013年的技术趋势主要集中在硬件重构和软件定义两个方面,它们分别代表了数据中心硬件和软件领域的创新和发展方向。 硬件重构主要解决了数据中心的可扩展性问题。在云计算时代,数据中心面临着巨大的数据...
书中强调了单元测试和集成测试的作用,以及如何在重构过程中有效地利用它们。 6. **案例研究**:书中可能包含真实世界的案例,展示了如何在实际项目中实施重构,让读者能够更好地理解和应用理论知识。 7. **代码...
此书深入浅出地介绍了重构的概念、原则和实践方法,对于任何Java开发者来说,都是提升编码技艺的必备读物。 首先,重构的意义在于保持代码的清晰和简洁。当项目随着时间的推移逐渐庞大,代码的复杂性也会相应增加,...
在Java编程领域,高并发和重构是两个至关重要的概念,特别是在构建大型项目时。高并发意味着系统能够同时处理大量用户请求,确保服务的响应速度和稳定性。而重构则是优化代码结构,提高软件可读性和可维护性的重要...
软件定义和硬件重构概述 软件定义和硬件重构是当前数据中心建设的两个主要趋势。软件定义强调通过软件来管理和控制网络架构,而硬件重构则强调通过硬件来实现网络架构的变化。这些趋势是应对快速增长的业务需求和...
在本文中,我们将深入探讨这两个概念,并重点分析公用模板重构的关键要素。 首先,重构是软件开发中的一个过程,它不改变软件的功能,而是通过改进代码结构和设计来提高其可读性、可扩展性和性能。在Web开发领域,...
本书首先介绍了重构的基本概念和原则,包括何时重构、为什么重构以及如何安全地重构。它强调了测试驱动开发(TDD)在重构中的重要性,因为有充分的自动化测试能够确保重构过程中不引入新的错误。 接着,书中详细...
《软件重构讲义》是关于软件开发中重构技术的一份资料,主要涵盖了重构的基本概念、目的、...这份资料为开发者提供了一个深入理解重构概念和技术的框架,对于提升个人和团队的开发效率及软件质量具有重要的指导价值。
硬件重构与软件定义,如同互联网企业和传统企业市场,涵盖范围不同但又相互交叉。双方都至少有一个共同诉求,即解决规模不断扩张,业务快速变化的挑战,同时还要有效控制成本。硬件重构与软件定义的应对之道,都是先IT资源...
"重构的概念性计划"这一主题涵盖了如何系统地规划和执行重构活动,确保项目的顺利进行。 重构的核心在于识别并解决代码中的设计问题,通过一系列微小的步骤来改进代码质量。这包括提取函数、提取类、引入参数对象等...
本资源主要讲解了软件设计中的重构(Refactoring)概念,并提供了一个实际案例来演示如何通过重构来改进代码结构。 什么是重构? 重构是软件设计中一种重要的技术,它的目的是为了使代码变得更加清晰、简洁、易...
重构,这一概念在软件工程中占据着重要地位,是提高代码质量、可维护性和可读性的关键实践。 重构是指在不改变代码外在行为的前提下,对代码进行修改以改进其内部结构。这种过程通常在代码审查、单元测试或持续集成...