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

为什么需要进行重构?

阅读更多
One of the factors in looking at this is why are we refactoring in the first
place.  One of my concerns with many proponents of lightweight methods and
refactoring (not all as I too am a proponent of refactoring and lightweight
methods) is that they don't make the distinction of why the refactoring is
needed.  Refactoring to fix "code smell" to my mind is because people didn't
understand the basics of good design in the first place.  To write great
code, you must write code that:

1. Runs all the tests.
2. Contains no duplication (once and only once)
3. Expresses all the ideas you want to express.
   a) Do not put the implementation of unrelated ideas in the same
method.
   b) Classes should organize ideas in a readily understandable way.
   c) Use appropriate names so you don't have to explain method, member
or class names with additional documentation
   d) Methods and classes should be implemented so they can be
understood totally from their public interfaces. This not only allows
for up-front testing, but decreases coupling.
4. Minimizes classes and methods. This is actually redundant, but is a
reminder that we are trying to make this simple and concise

In my mind, refactoring should not be needed to fix code if you are
following these rules.  However, refactoring is definitely needed to:
1) fix legacy code once your understanding of patterns has increased
2) prepare code for new functions resulting from changing requirements or
the next development iteration
分享到:
评论

相关推荐

    27丨理论一:什么情况下要重构?到底重构什么?又该如何重构?1

    1. **代码出现“坏味道”**:当代码中出现冗余、复杂性过高、难以理解和维护的迹象时,是进行重构的好时机。 2. **添加新功能**:在扩展系统功能时,如果发现现有代码难以扩展,可以借此机会重构。 3. **修复错误**...

    何谓重构,为什么要重构?

    ### 何谓重构 重构是一种优化现有代码结构的技术,在不影响软件功能的前提下,通过调整代码来提升其质量...通过遵循最佳实践和使用合适的工具,开发者可以更高效地进行重构,从而创造出更健壮、更易维护的软件产品。

    代码到底该如何重构?.doc

    - **添加新特性时**:在增加新功能时,如果发现原有结构不适应,可以进行重构。 - **修改错误时**:修正错误的同时,可考虑是否需要调整代码结构。 - **代码审查时**:审查过程中发现的不良设计可以及时重构。 **...

    如何进行重构 pdf

    #### 为什么进行PDF重构? 1. **提升可读性和易用性**:随着设备和屏幕尺寸的变化,原有的PDF文档可能不再适用于现代阅读环境。通过重构可以调整页面布局、字体大小等,使文档更加符合当前的阅读习惯。 2. **适应新...

    java重构pdf书籍

    #### 为什么需要重构? 重构是指在不改变外部行为的前提下,对软件内部结构进行调整的过程。其主要目的包括: 1. **提高代码质量**:通过简化复杂度、消除重复代码、改善设计模式等手段,使代码更加清晰、易于理解...

    HTML重构 div+css教程

    为什么进行HTML重构? HTML重构的目标(What Refactor To) ? 面对质疑:还要重构么? 战术篇 战术篇 工具篇 版本管理工具Version Control 页面验证工具Validators 测试工具 正则表达式工具 Html清理工具 ...

    【EMD重构】.rar_EMD重构函数_IMF变量重构_tomorrowi4n_模态分解_重构

    在描述中提到的"对经验模态分解后的各分量IMF进行重构代码,函数可直接调用",意味着这个压缩包中包含了一个名为"EMDchonggou.m"的MATLAB脚本文件,该文件提供了实现IMF重构功能的代码。用户可以直接运行这个函数,...

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

    为什么需要重构? 随着项目的进展,代码可能会变得越来越复杂和难以维护。通过重构,可以简化代码结构,提高其可读性和可维护性,同时也可以发现潜在的问题并提前解决。 ### 重构的目的 #### 1. 提高代码质量 ...

    emd.rar_emd信号重构_emd分解重构_emd重构_经验模态分解

    通过EMD,我们可以深入理解信号的动态特性,为信号的分析、识别和重构提供有力工具。 EMD的过程主要分为以下几个步骤: 1. **数据分拣**:首先,选择一个原始信号,该信号可能包含多种频率成分和时间变化行为。EMD...

    重构 改善既有代码的设计.ppt,编程功底的体现,必修课

    为什么需要进行重构呢?主要原因有以下几点: 1. **改进软件设计**:随着项目的进展,如果没有定期重构,代码可能会变得腐朽,缺乏设计的代码往往冗余且难以理解。重构有助于保持代码的简洁和模块化,使得设计更加...

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

    书中还讨论了何时进行重构、如何测试重构后的代码以及如何在团队中推广重构文化。测试驱动开发(TDD)在这里起着关键作用,因为它为重构提供了安全网,确保每次修改都不会引入新的错误。 总之,《重构:改善既有...

    Java重构技术

    #### 何时进行重构? 重构并非无时无刻都在进行,而是在特定情况下被触发。以下三种情况通常被视为重构的最佳时机: 1. **存在重复代码**:遵循“三次法则”,即当同一段代码出现三次时,应考虑将其抽象为函数或类...

    用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构

    【程序老媛出品,必属精品,亲测校正,质量保证】 ...源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定经验的开发人员

    软件重构 软件重构经典PPT

    当遇到以下情况时,通常需要进行重构: 1. 在添加新功能之前,确保现有代码的清晰性和稳定性。 2. 在修复错误时,发现有机会改进代码结构。 3. 在代码审查过程中,识别出可以优化的部分。 然而,不是所有情况下都...

    利用小波变换对图像进行分解和重构

    8. **实际案例**:在"基于小波变换的图像的分解与重构"的例子中,可能包括对图像进行小波分解,观察不同尺度下的图像特征,然后根据需求进行重构,如去除噪声、压缩图像或者恢复受损图像。 通过以上步骤,我们可以...

    重构(Refactoring)英文版

    如果不进行重构,随着时间的推移,这些系统可能会变成所谓的“遗产系统”或“技术债务”,这将导致开发新功能变得更加困难且耗时。通过重构,开发人员可以逐步清理代码库,使其保持健康的状态,从而能够快速响应新的...

    重构中的源码,可能对照重构的书籍进行阅读

    Java是一种广泛使用的面向对象的语言,具有丰富的库和工具支持,非常适合进行重构实践。 针对“重构”这一标签,我们可以学习以下几个重构技术: 1. **提取方法**:当一个方法变得过长或者承担太多职责时,可以将...

    Python代码重构的艺术:探索自动化重构工具

    5. **Black** 和 **isort**:这两款工具虽不直接进行重构,但它们可以自动格式化代码并整理导入语句,有助于提高代码的整体质量和一致性。 #### 四、具体工具的使用案例 1. **Rope**:假设我们需要对某个Python...

Global site tag (gtag.js) - Google Analytics