Archive for the Design Issues Category

Oh OO, thou art a heartless bitch

Posted in Design Issues with tags , , , , , on August 11, 2010 by moffdub

Well, it has finally happened. I am dreaming about defects in our code. Dream in code? Dog, I live dream-in-code every day.

Time for a familiar argument, a familiar decision. You have a blank slate. You must define some data transfer objects for your consumer based on some requirements. You provide an interface that takes in one of these data structures and returns an XML representation of that data structure.

And, for the sake of this discussion, you are using Java’s XMLStreamWriter as your XML framework (I know, I know, there are much more uber l33t ways, but this was the most straightforward and painless way for you in the time-frame you were given).

Simple. SIMPLE. Right?

Option 1

By now, your nudge, your twitch, your instinct is to define an appendTo(XMLStreamWriter) method to each object, which either writes a simple tag or calls appendTo(XMLStreamWriter) on its constituents:

Read more »

When inheritance hierarchies lose their structural integrity

Posted in Design Issues with tags , , , , on February 17, 2010 by moffdub

Let the record show that the number of work days I missed due to inclement winter conditions is zip, zero, nada. So tell Mother Nature to take her power outages and her blizzards and suck. On. That.

Did you really think some crystalized water molecules were going to keep me from my code? Girl, you MUST be crazy.

In fact, a new episode of Nowhere To Run was forthcoming on Saturday, but I succumbed to fatigue and the call of my nice couch/bed at a paltry 9 P.M. I am so old.

Allow me to posit something to you, folks. Suppose this is your nice, beautiful code:

Read more »

Second-class citizens above the law

Posted in Design Issues with tags , , , , , on January 13, 2010 by moffdub

It’s not too late. Almost eleven months have passed since I favored a Long Parameter List over perceived Feature Envy on the grounds of coupling with the order of the parameters:

Long Parameter Lists are also about coupling, to a lesser extent. You are coupled to the order of the parameters.

I even said in that post that Feature Envy isn’t a clear-cut issue:

Let me share something about Tell Don’t Ask that I’ve realized: the most harmful instances that require attention are those where you get some values out of an object, do something with them, and set some others back into the object.

Yes. And then I defended the readability of a Long Parameter List:

Read more »

Follow

Get every new post delivered to your Inbox.