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

时间:2010-12-02 09:29:19

标签: java swing refactoring

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

现在我被分配了重构此Java代码的任务。

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

6 个答案:

答案 0 :(得分:4)

我建议使用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

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

答案 1 :(得分:2)

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

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

一旦你决定进入新课程的内容,就必须将课程分成其他课程。 Eclipse的Extract类重构错误名称为isn't really helpful。 IntelliJ的IDEA要好得多,但仍有一些缺陷。 JDeodorant也可以执行拆分,但它也有一些错误。

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

IntelliJ拥有理解Java代码的所有智能,并提供出色的重构。现在有一个free and open source version

答案 4 :(得分:0)

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

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

有关概述,请结帐:

答案 5 :(得分:0)

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

Variable Usage Eclipse Plugin