A Curious Mind
#tastic

How does reversibility affect my designs

Thursday, May 08, 2008 11:15 AM

Well lets see. I think on of the big things it does is encourage a lot of interfaces in my code. I think it encourages the use of an IoC Container. I think a lot about my code and refactor little things often to get the names right. It has me looking into message based systems as a way to build more loosely coupled systems. It has me looking at various parts of my application and wonder "is this really a service that could be off on its own and then I can just be a customer of?"

I tend to move out of analysis paralysis because I know that I can always change my mind. There are times where I hit a spot and I am like damn, that refactoring is going to take all day, but afterwards the code is almost always in a better position for the long run, and if it is painfully it usually means I was doing something wrong from an SoC standpoint anyways.

It has me favor infrastructure that doesn't infect my domain, that way I can swap out infrastructure later, which is a huge benefit.

Hows that sound?


Feedback

# re: How does reversibility affect my designs

Good post! I'm surprised that you didn't mention the benefit of easier testing with mock objects.

I know that "IoC" means "inversion of control." What does "SoC" mean? Gotta be careful with those acronyms... 5/9/2008 10:33 AM | Chris Falter

# re: How does reversibility affect my designs

IoC = Inversion of Control
SoC = Separation of Concerns

:) 5/10/2008 7:59 AM | Dru

# re: How does reversibility affect my designs

This sounds like a healthy evolutionary process.. It's also unique to do this from the aspect of reversibility (another ility ).

Looking forward to some examples or discussion of a particular situation that allowed you to evolve and learn and then adopt this approach.. but for the most part I can definitely relate to the consideration of reversibility in design. 5/14/2008 4:00 AM | 5x1llz

Post a comment





 

Please add 7 and 4 and type the answer here: