Subject: Extend refactorings to ones that can not be 100% automated but
assist programmers in performing remaining manual modifications.

I read a discussion in the archive of this list from jetBrains people saying
they see few value to refactorings that can not be automated. I would like
to offer a different opinion on this.

In such refactorings the UI support for the refactoring would be split in 3
phase:
1. usual preview
2. execution of automated transformation
3. iteration from the preview screen to the list of required manual changes.

While this is true that such refactoring are less impressive that fully
automated ones, I believe they can still bring much value to the developer
because most of the work (usually in identifying necessary changes to be
made) is performed automatically. I believe in most situation, the potential
benefit of an tool concerns time necessary to perform the refactoring is
greatly devoted to identification of changes rather than performing the
change itself. I however agree that IDEA with its semantic search often
already reduces significantly this time, but I still believe there are great
remaining opportunities for improvements. Some examples I frequently ran
into with build 638:

Suggestion 1: Move method refactoring for non-static method (for instance
up/down in a class/interface hierarchy).

Whereas it can not be 100% automated such a refactoring provides the
following benefits:
- automatically identify dependencies and necessary updates
- automatically move method declaration
- support programmers in performing remaining manual modifications.

Suggestion 2: Improvement to method signature change refactoring to support
modification of declared exceptions

I would be nice if the method signature change refactoring would allow the
programmer to also modify declared exceptions. Then check if callers catch
blocks need to be modified (given the actual "surround with try/catch" this
should be easy to implement), and list the ones that need manual
corrections. Then the programmer can apply on those the "surround with
try/catch" code generation.

Guillaume.

_______________________________________________
Eap-features mailing list
[EMAIL PROTECTED]
http://lists.jetbrains.com/mailman/listinfo/eap-features

Reply via email to