TechTarget云计算 > 百科词汇

重构:refactoring

依照重构之父Martin Fowler的说法,重构(refactoring)是“以这样的方式改变一个软件系统的过程:它不改变代码的外部行为然而改进它的内部结构”。 重构的概念实际上包含了源代码任何的校订或整理,但是Fowler巩固了在软件开发行业的许多最好的做法,把他们列入一本“重构”的特定目录而且在他的书中描述了实现他们的方法,重构:改良已经存在的代码的设计。重构适用于任何的程序语言,不过现在多数的重构工具使用Java语言开发。

  重构的一个方法是先改进一个点的源代码的结构然后有系统地在程序各处所有可适用的地方扩充相同的改变。结果是使密码更有效率,可升级,可维持或可以再度使用,而不实际变更任何程序本身的功能。在他的书中,Fowler描述了一个整理代码的方法,将引进新的程序缺陷的机会减到最小。

  在2001年1月, 自动重构工具开始认真地出现,包括 IntelliJ IDEA Java IDE(综合开发环境)、Emacs编辑器的X-ref插件程序工具和Instantiations jFactor 单机用重构工具。编辑环境支持简单的 refactorings 的许多基本喜欢重新命名横过一个整个的密码基础的一个功能或变数。大多数目前有重构能力的工具最小的支持提炼函数和内联函数,但是对更复杂但是有用的重构例如提炼接口和提炼超类的支持仍然不普遍,虽然那是可行的。

  Eric Raymond,程序开发的顶尖哲学家,主张重构的概念和“现在先让某物工作过后再完善它”的方法的理念相一致,这种方法是Unix和开放源程序师还有黑客长期熟悉的。这个理念也包含在极限编程方法中。

最近更新时间:2009-12-30 EN

相关推荐

  • 防止重构问题最佳方法

    在我们的“Ask The Experts”会话中,Brad Irby回答了这一问题:如何重构问题未发生之前防止它?

  • 应用性能:规划成本远小于重构作者

    开发人员常说,他们的目标之一是使应用程序“快”。然而,当他们发布应用时,客户还是抱怨速度太慢并且反应迟钝。

  • 拥抱重构

    提到让你重构一个功能模块,提到让你去修改一个别人的bug,阅读别人的代码,你第一反应是什么?惧怕?想骂人?面对一个代码垃圾场……

  • 对敏捷开发的五大误解

    很多人在尝试实施敏捷时说:敏捷对人的要求太高了,我们没有这样的条件,我们没有这样的人,因此我们没法敏捷。可是,敏捷对人的要求真的……