我在代码库中通常使用的一种方法是拼写错误(并且早于我)。
这不仅激怒了我,不仅因为它的拼写错误,而且更重要的是,这使我在第一次键入它时总是总是弄错名字(然后我必须记住“哦,对,应该把它拼写错了……”)
我正在对原始方法进行一些更改。我是否应该借此机会重命名怪胎法?
我在代码库中通常使用的一种方法是拼写错误(并且早于我)。
这不仅激怒了我,不仅因为它的拼写错误,而且更重要的是,这使我在第一次键入它时总是总是弄错名字(然后我必须记住“哦,对,应该把它拼写错了……”)
我正在对原始方法进行一些更改。我是否应该借此机会重命名怪胎法?
Answers:
在某些情况下,您应避免进行此类重构:
如果该方法在公共接口中使用。一个典型的例子是拼写错误引用的HTTP引用,错误拼写被保留,因为现在更改的拼写将有太多的反响。
如果代码基础未包含在任何测试中。 任何重构都应在经过测试的代码上进行,以便能够进行回归测试。重构未经测试的代码库尤其危险。如果您确实有很多时间,请从开始添加测试开始;如果您在时间紧迫的情况下工作,那么如果您想准时交货,最好不要冒险引入细微的错误。
如果该方法可以以一种不寻常的方式使用,则实际上使它的使用(通过Ctrl + F或自动重构工具)找不到。例如,在C#中,可以通过反射调用方法,从而使Visual Studio的“重命名”对话框无效。在JavaScript中,eval()
很难找到内部调用的函数。在PHP中,变量变量可能会引起问题。
如果项目规模巨大,并且其他团队可以使用该方法。这类似于第一点,即您提供给其他团队的界面可以被视为公共界面。
如果您处理的是至关重要的项目。可能的是,拼写错误并不太重要,不足以证明几个月的文书工作以更改方法的名称,并确保不会导致任何患者接受十倍于授权放射线或任何梭子来误算其速度。
在任何其他情况下,请随时重命名该方法。
我几个月前就已经做到了(出于不同的原因)。我采取的步骤(语言是Perl):
一段时间后,删除具有旧名称的方法。
当然,您的里程会有所不同。
一种不破坏任何现有代码的好方法是将新方法名称链接到旧方法中,例如
private void MyNewMethodName()
{
TheOldMethodName();
}
然后将旧方法标记为过时(如果您的语言支持)。这样,任何现有代码仍然可以使用,您可以逐渐从代码库中消除所有旧的拼写错误。最终,您甚至可以将方法主体复制/粘贴到新方法中,然后删除旧方法。
正如ivo在评论中所说:/ Edit要做的更好的事情是将代码从中TheOldMethodName
移入MyNewMethodName
并从旧方法中调用新方法。这也将有助于开发人员了解代码所属的地方。