Yes, it compiled. It worked even. Not only did it work, but it completely meets the client's requirements. But somehow when I look at those particular lines of code (16 lines, in this case, with DataGridGirl's help) I wonder about the ramifications of this horrible algorithm on my immortal soul.
If you know me, or maybe even if you don't, you know that it has been said I have an overdeveloped sense of smell. Specifically, Code Smell. Often it's a gift and has served me well. Other times it's a crushing weight as the schedule looms and I just have to buck and, well, write some crap. (Of course, if it is totally with in spec, performance, it works, QA, etc, it's not crap, but you know.)
So my question to you, fair readers and fellow codesmith's, how bad do you feel when the pattern doesn't quite fit or that nested foreach/foreach/foreach nested a bit to deep?
When do you know to let go? Some might say, “when it passes the NUnit Test!” Others, who look at coding as much an art form as science might disagree.
I noticed a number of folks, from Don Box to Doug Purdy, at the PDC making GREAT PAINS to let the audience know that “this or that particular line of code is an abomination! Look away, look away from these alpha bits that hold all our pride and all our shame.” I had to say I agreed with their evaluations.
What to do when you've built a great monument, but there's bird poop at the top that you're responsible for. Does it take away from the accomplishment?