Re: Refactoring wishlist

Adam Sroka <[email protected]> Tue, 20 Sep 2011 19:35:59 -0700
Newsgroups gmane.comp.programming.refactoring
Message-ID <CALaPUVcfMJO9iUhCSQy6v_-wXoePtOLF5o3h5SXDtNAKytDDLw@mail.gmail.com>
On Tue, Sep 20, 2011 at 7:21 PM, Adam Sroka <[email protected]> wrote:
>
> Also, if you understand how to perform complex refactorings as a series of atomic steps (Which is how Fowler et al describe it in the book) then you not only grok them but you can even start to innovate your own complex refactorings when the domain/language is different.

I wanted to expand on that last thought in case it wasn't clear:
different languages and different domains lead to different design
patterns, idioms, and DSLs. When you refactor in those environments
the direction you chose to go may be different, but you can still
compose almost any change from a series of atomic refactorings. Many
of the patterns oriented refactoring in the catalog only happen to be
appropriate in a small minority of design scenarios. Some are never
appropriate in a given language or environment.

In my experience I want these changes to happen in tiny steps, because
it is an exploratory process. I can still do it pretty fast, but I
have a lot of control. Only rarely does what I am doing exactly match
a more complex pattern so well that I am able to recognize it before I
start down the path. When that happens I may get lucky enough to
remember that I have a menu item for it and I may even remember how to
activate that rarely used menu item successfully.

In my experience that nexus of good fortune is rare enough that it is
not worth investing my time to seek it. IMO, it is more valuable to
invest that effort in practicing to internalize some of the more
common strategies for removing duplication. Then I can seek design
improvements opportunistically while I'm cleaning up my general
vicinity.

I hope that makes sense.


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/refactoring/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/refactoring/join
    (Yahoo! ID required)

<*> To change settings via email:
    [email protected] 
    [email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/