重构再定义
名词:对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其可理解性
,降低其修改成本。
动词:使用一系列重构准则,在不改变软件之可察行为前提下,调整其结构。
重构的目的是使软件更容易被理解和修改。可以在软件内部做很多修改,但对其 public 的接口
造成很小的变化或甚至不能造成变化,在决定改变接口时一定要慎之再慎。
两个方面
1、添加新功能:不应该修改已有的代码,只管添加新功能和对应的测试。
2、重构:不应该再添加功能,也不应该更改对应的测试,只管改进程序结构并使改进后的程序
通过测试。
为何重构?
程序设计是与计算机交谈,程序告诉计算机做什么,怎么做,它的响应则是精确按照程序的指
示行动,机算机是程序主要的读者。从而往往忽略了程序另一种重要的读者,自己或其它程序
员。有人说懒惰是程序员的美德之一,懒惰常常使程序员写出精妙的代码,创造出更好的应用
,而重构则使程序员偷懒有方,呵呵,至少我这么认为。
在重构过程中能够帮助找到隐藏的 bugs,也能帮助深入理解代码的行为。
何时重构?
三次法则:事不过三,三则重构。第一次做某件事时只管去做;第二次做类似的事会产生反感
,但无论如何还是做了;第三次再做类似的事,就应该重构。
重构的阻力
这一章谈到了一些,我的感受是最大的阻力来自于程序员本身、整个团队、一些政治因素,呵
呵,有经验的程序员可能都会有此感受。
修改接口
不到最后关头千万不要做此决定,接口是对外的承诺,一但收回承诺,任何事情都有可能发生
。如果一定要修改接口应该让旧的接口依然能够工作,直到所有的用户都做出反应为止。
分享到:
相关推荐
《重构-向范式前进》是一本深入探讨软件开发中重构与设计模式融合的重要书籍。在编程领域,重构是优化代码结构、提升可读性和可维护性的重要手段,而设计模式则是解决常见问题的成熟解决方案。这本书的核心在于指导...
本文主要围绕重构的关键概念、原则、时机以及面临的挑战展开讨论。 首先,重构的核心是通过一系列微小的、有序的步骤改善代码结构,确保在任何时刻代码都能正常工作。正如马丁·福勒在《重构》一书中提到的,每次...
.NET 快速重构学习笔记是针对开发者提升代码质量和可维护性的重要指南。重构是一个系统性的过程,旨在改善软件设计,优化代码结构,而不改变其外在行为。在.NET开发环境中,重构是不可或缺的技能,它可以帮助开发者...
我在阅读Martin Fowler的“重构:改进现有代码的设计(第二版)”时的个人笔记。 它仅包含一些基本概念作为我的理解。 如果您想了解更多,我强烈建议您购买该书。 如果您是发布者,并且认为此存储库不应该公开,请...
《重构-改善既有代码的设计》是一本由Martin Fowler所著的经典IT著作,专注于软件开发中的重构实践和技术。这本书深入探讨了如何通过一系列微小而精确的步骤改进代码的设计,提高软件的质量、可读性和可维护性,而...
《重构-改善既有代码的设计》是一本经典的软件开发著作,由Martin Fowler著述...通过掌握和应用《重构-改善既有代码的设计》中的原则和技巧,开发者可以不断提高自身的编程水平,创造出更优雅、更易于维护的软件系统。
重构-福勒(WIP) 我的学习笔记来自阅读《 第三章-代码中的不良气味1.神秘的名字函数,模块,变量和类的名称混乱。 确保他们清楚地传达他们的工作方式和使用方法。 2.重复的代码同一代码结构存在多个地方。 它需要在...
"消除重复代码"(DRY原则)是重构的一个重要原则,它强调不要编写两次同样的代码。当发现多处代码有相似或相同的部分时,应该抽象出共享的逻辑,避免代码冗余。这有助于保持代码的一致性和可维护性。 此外,"使用...
- **重构(Refactoring)**:不断改进现有代码,提高其质量和可维护性。 - **结对编程(Pair Programming)**:两人一组共同编写代码,提高代码质量并促进知识共享。 - **集体所有权(Collective Ownership)**:...