如何重构数千行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进行重构的强大文章:
最后,另一篇关于如何在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插件