重构边界

2004年9月1日

最近在重构邮件列表上有一些关于什么是或不是重构的讨论。就像这些讨论一样,总是有争论天使在针尖上能站多少的风险,但思考边界确实有一些有用的目的。

我书中的重构定义是故意非正式的。非正式性取决于几个明显可以解释的短语

  • 不改变其可观察的行为:这引出了一个问题,什么是可观察的行为?本质上,这意味着软件仍然执行它以前执行的操作 - 但有很多方法可以解释这一点。
  • 为了使其更容易理解和更便宜地修改:这涉及到重构的目的。我们可以对程序进行许多更改,但在我看来,重构就是为了使其更容易理解和更改。在我看来,出于不同目的进行的相同更改不是重构。

重构的本质是一系列小的行为保持更改。尽管重构不是可以正式定义的东西,但它仍然是一个相当精确的术语 - 我确实想避免重构混淆。但我认为值得考虑一些这些案例,我将它们放在不同的 bliki 条目中:更改接口是否重构修复未知错误是否重构优化是否重构声明排序是否重构