Re:Do modern IDEs make us dumber?
by azanar on Saturday December 06, 2008 @12:32AM
(#387882)
>The real refactoring work is done in your head.
This has totally been my experience. Moving a method or variable up or down in the inheritance tree, extracting part of a method, inlining method calls: all of this is architectural refactoring. I've found the much of my refactoring time isn't spent in moving methods around and modifying signatures; it is spent in modifying the algorithms and data organization. Not organization in the sense of whether variable belongs in sub- or super-class, but in the sense of whether some subset of data should belong in a particular class, or some new delegate class I construct. That new delegate class might not be a subset of the class I'm splitting apart, so requires more than just some automated extraction process. I can't help but create a mental picture of all of this as a sort of architectural autopilot -- it can handle making minor course and altitude corrections, but still expects you to have thought about things before pressing the 'engage' button.
Re:Do modern IDEs make us dumber?
by modoc on Saturday December 06, 2008 @09:32AM
(#388103)
The guts of all application design and redesign (which is what refactoring really is) is always done in your head. That's true no matter what tools you use or don't.
This has totally been my experience. Moving a method or variable up or down in the inheritance tree, extracting part of a method, inlining method calls: all of this is architectural refactoring. I've found the much of my refactoring time isn't spent in moving methods around and modifying signatures; it is spent in modifying the algorithms and data organization. Not organization in the sense of whether variable belongs in sub- or super-class, but in the sense of whether some subset of data should belong in a particular class, or some new delegate class I construct. That new delegate class might not be a subset of the class I'm splitting apart, so requires more than just some automated extraction process. I can't help but create a mental picture of all of this as a sort of architectural autopilot -- it can handle making minor course and altitude corrections, but still expects you to have thought about things before pressing the 'engage' button.