如何重构数千行Java代码? 有没有可用的工具?

在我们的应用程序中,我们有两个或三个类,其中包含整个Java Swing应用程序逻辑。 这两个或三个类包含大约7k行代码。

现在我被赋予了重构这个Java代码的任务。

我该如何开始? 有没有可用于重构或至少指导我们的工具?

我假设您正在尝试将这些大类拆分为较小的类。 最常见的方法是使用Extract Class重构。 碰巧这是我博士论文工作中的一个主要话题。

其中一个难点是决定新课程的内容。 我知道有两个公开可用的工具 – ExtC (我的工具)和JDeodorant 。 两者都是Eclipse插件,我将它们归类为原型。 如果你想尝试使用我的工具,我很乐意提供帮助。

一旦你决定了什么应该进入新课程,你必须做一个将课程分成其他课程的实际工作。 Eclipse的Extract Class重构被错误命名, 并没有真正的帮助 。 IntelliJ的IDEA要好得多,但仍有一些bug。 JDeodorant也可以执行拆分,但它也有一些错误。

我推荐Eclipse – 用于编辑和重构的出色Java IDE。 它有几个重构工具。 有关如何使用Eclipse的优秀教程位于:

http://www.cs.umanitoba.ca/~eclipse/13-Refactoring.pdf

如果您还不相信,有一篇关于使用Eclipse进行重构的强大文章:

http://www.eclipse.org/articles/article.php?file=Article-Unleashing-the-Power-of-Refactoring/index.html

最后,另一篇关于如何在Eclipse中进行重构的文章,包括技术和工具,可在以下位置找到:

http://www.ibm.com/developerworks/opensource/library/os-ecref/

还有另一个关于重构Java代码的策略的stackoverflow问题,您可能会感兴趣:

https://stackoverflow.com/questions/128498/what-are-the-best-code-refactoring-strategies

希望有所帮助,祝你好运!

IntelliJ具有理解Java代码的所有智能,并提供出色的重构。 现在有一个免费的开源版本 。

Eclipse有一些内置的重构工具。 您可以重构方法的签名,提取接口和类,在层次结构树中上下拉动方法,移动包……以及只需两次单击即可。

此外,您可以从Martin Fowler的书“重构:改进现有代码的设计”开始。

由于重构代码主要依赖于开发人员(由工具辅助),因此在重构时,IDE是一个非常重要的工具。

Eclipse和IntelliJ IDEA都有很多重构支持。

有关概述,请结帐:

我创建了自己的重构工具,尝试将使用相同变量集的方法组合在一起。 这是一个非常早期的原型。 它仅作为Windows Eclipse插件提供。

变量用法Eclipse插件