Ayende @ Rahien

Hi!
My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 18 | Comments: 79

filter by tags archive

A legacy of conspiracy

time to read 1 min | 158 words

Contrary to popular opinion, I have not been kidnapped, nor have I been hit on the head, nor have I started to seek that kind of job security.

I gave a talk about legacy code and refactoring, and I needed something concrete to talk about. Unfortunately, most legacy code is too intertwined to be able to extract out in order to talk about it in isolation. So I set out to write my own.

To all the people who assume that I don't live in the real world, or that I don't deal with legacy systems... well, I think that this code shows that I do know what is going out there.

And just to make it clear, no, I wouldn't write this type of code for any reason. Not for a spike or for a lark. But I think that this is a pretty good archeological fake, even if I say so myself. 


Comments

Frank Quednau

That's interesting, actually, because something didn't seem quite right, when you looked at it another time. Indeed the intertwined-ness is what's lacking a bit. Apart from that, nice work!

PS

You remember that spreadhseet making you guess fake boobs / real boobs? A quite nerdy contest would be with fake legacy / real legacy...

Damon Wilder Carr

This subject has been masterful covered by this Jolt award winner:

'Working Effectively with Legacy Code' by Michael Feathers.

http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052/ref=sr111?ie=UTF8&qid=1220008201&sr=11-1

This is the material I start people on who want to play in the new world (which is not new at all, just being discovered by .NET types).

Are you doing something different?

Thanks,

Damon

Ayende Rahien

http://www.ayende.com/Blog/archive/2005/08/28/8328.aspx

http://www.ayende.com/Blog/archive/2008/03/15/Recommended-Books.aspx

pete w

frankly I was impressed how well you could simulate a legacy code scenario by writing from scratch.

I would need at least 6 beers before I could do it that well :)

Ayende Rahien

At each point, all I had to do was to think what I should be doing, and then stop cringing

Dale Smith

I don't see how anyone could possibly make the case that the primary author of a mocking tool like Rhino.Mocks doesn't live in the real world or doesn't have to deal with legacy code.

Ayende Rahien

You will be surprised how often I get that opinion.

Jdn, wants to chime in?

jdn
jdn

Except in jest, I have never said you didn't live in the real world or deal with legacy code.

You do usually pawn the work off on whichever robot is running most inefficient that day, but that's an implementation detail.

jdn
jdn

Although I've been present (including in one of the Open Spaces Seattle sessions) when other people have said it. Is that what you mean?

Ayende Rahien

That was me needling you, mostly.

jdn
jdn

LOL. Awesome! Thanks.

Alex Simkin

Now everyone prepare to see how this lovingly crafted masterpiece will be transformed into faceless, soulless piece of machinery blindly doing tax calculation - bearing no sign of its author's personality (in this case Oren's).

jdn
jdn

Just search for "Joe forgot to load the rates AGAIN!"

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

  1. Production postmortem: The industry at large - 10 minutes from now
  2. The insidious cost of allocations - about one day from now
  3. Buffer allocation strategies: A possible solution - 4 days from now
  4. Buffer allocation strategies: Explaining the solution - 5 days from now
  5. Buffer allocation strategies: Bad usage patterns - 6 days from now

And 2 more posts are pending...

There are posts all the way to Sep 11, 2015

RECENT SERIES

  1. Find the bug (5):
    20 Apr 2011 - Why do I get a Null Reference Exception?
  2. Production postmortem (10):
    01 Sep 2015 - The case of the lying configuration file
  3. What is new in RavenDB 3.5 (7):
    12 Aug 2015 - Monitoring support
  4. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats