• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Ron McLeod
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

Refactoring Software

 
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am interested to see what refactoring software people are using and what there experiences have been. I am compiling a list of what is currently available.
thanks,
julian
 
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Martin Fowler maintains a list at http://www.refactoring.com/#tools
The by far most powerfull refactoring browser I know is the one integrated in IntelliJ IDEA. I also had some good experiences with Instanciations JFactor.
Currently I am using Eclipse. Its refactoring support is still evolving, but already quite usefull.
 
author
Posts: 11962
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
With my inadequate experience and knowledge on Refactoring, it seems to me that when TheBestSoftwareInTheWorld Inc. makes an IDE and touts its "Industry-level Refactoring Features", they are actually speaking about "Tools->Refactoring->Rename class".
Well, I can see the enormous benefit of the above-mentioned feature when someone wants to change the name of a class some other developer invented ages ago, but where do you guys think refactoring has the biggest effect? What is it that developers want from refactoring in their CASE tools?
 
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I modestly recommend using RefactorIT. Integrates with NetBeans/Forte, JBuilder, JDeveloper. Evaluation version available.
 
Ranch Hand
Posts: 57
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have been using Eclipse and have been pretty impressed with its refactorings. Granted this is just a "baby step" as far as tool support -- but it is a step in the right direction. Some of the refactorings are simple things like "rename pkg" (which saves you a boatload in typing). Others are things like "Extract Method". Give it a try
 
Ranch Hand
Posts: 30
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am going t have to agree with Ilja. IDEA by intelliJ is the simplest and most effective tool i have used for refactoring.
I have tried borland's built in refactoring options, and was very dissapointed. I also looked at RefactorIT, it looks impressive, but i hvae never actually tried it, since my IDE of choice is IDEA.
just my 2 cents worth ( not much since it is in canadian funds )
Tim
 
Ranch Hand
Posts: 153
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
From the posts above, we refactor by renaming or extracting classes to group common functionality. Is this what refactoring is all about?
 
Sheriff
Posts: 7001
6
Eclipse IDE Python C++ Debian Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Those two are some of the popular refactorings, sure. There are many others including inlining variables, "pulling up" a method to a base class, and so on.
In essence, refactoring is the process of changing (and, hopefully, improving) the internals of a piece of software witout changing the public interface.
Refactoring can take place at many different levels, from changing the name of a local variable or re-ordering a few lines in a small method, right up to moving a whole web application from .NET to J2EE. The important thing is that at whatever level you choose, the interface to users or to other software remains constant.
In practice, refactoring is at its most useful when accompanied by an automated test framework. If you have a set of automated test "scaffolding" around the piece of software you are refactoring, you can proceed in a series of small, simple steps and re-run the tests after each one to make sure you haven't inadvertently "broken" anything. By judiciously choosing the refactoring steps, you can make sure that with each step the design of the software is immproved.
For more details you might want to look at some of the books, such as Bent Beck's "Smalltalk Best Practice Patterns" and Martin Fowler's "Refactoring - improving the design of existing code".
 
Ranch Hand
Posts: 121
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am currently trying JBuilder. It's look RefactorIT able to helping me alot.
[ September 17, 2002: Message edited by: Steffy Sing ]
 
Ranch Hand
Posts: 30
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I used RefactorIT a lot during its beta period. It does work well -- a bit too pricey for an IDE add-on, but it does its job. I couldn't justify the cost with most IDEs seeming to work on adding these features.
As to what I used mostly:
1. Rename methods, classes, variables, and even packages.
2. Pulling methods up into a base class.
The second one is really helpful. The first one is very convenient.
 
Author
Posts: 6055
8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I've used JRefactory with JBuilder 5. The refactorings were the common ones (moving variables, and methods, etc), but then those are where you make the really dumb mistakes. :-) I liked it, and found it useful and easy to use. It's free (may even be open source).
--Mark
 
reply
    Bookmark Topic Watch Topic
  • New Topic