Re: Ambiguous Refactoring Solution

hal arnold <[email protected]>
Newsgroups gmane.comp.programming.refactoring
Message-ID <[email protected]>
I was  a tiny bit surprised to read that you were thinking about refactoring you code when the code didn't yet have any tests. Perhaps, you should start with some focused tests and see if it doesn't give you some ideas as to how the class is conceptually heavy?

regards,

/hal

--- On Mon, 9/21/09, bryanedds <[email protected]> wrote:

From: bryanedds <[email protected]>
Subject: [refactoring] Ambiguous Refactoring Solution
To: [email protected]
Date: Monday, September 21, 2009, 11:08 PM






 




    
                  My issue is that I have a class that is 613 lines of C++ code. This is a very fat class, but it's moderately cohesive. I would like to refactor it to address the size issue. The problem is that I don't have a specific enough problem that the refactoring will solve. This seems to ambiguate the refactoring solution. For example, I could do an extract subclass. That would be a simple solution. Or, I could extract a strategy class that the original class delegates to. This is more complex, but will probably be more future proof. Or, I could extract a mediator class. There are many choices.



Now, usually I have an immediately pressing context from which to derive a refactoring solution. That context is usually of reuse. I can ask myself, "how do I refactor this class in order to best facilitate reuse of its key elements?" The refactoring solution often very neatly falls out of the reuse context. Such a context is absent here.



I could sit and theorize about what I would do in a future reuse context. But that seems to be irresponsibly speculative.



Any one have any ideas on how to refactor when the usual driving forces are absent?



- Bryan




 

      

    
    
	
	 
	
	








	


	
	


      

[Non-text portions of this message have been removed]



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

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:
    mailto:[email protected] 
    mailto:[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/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.