Re: A little afternoon WTF
On 13-05-2010 13:12, Tom Anderson wrote:
For your edutainment, some code (lightly anonymised) seen while digging
into code written by some (now-departed) contractors today:
private static String header = "" +
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" +
"<initech:tps-report><initech:coversheet> etc";
WTF: the empty string literal on the first line. What did they think
that was for?
Some obscure formatting preference.
Secondary WTF: writing XML by hand rather than using StAX or something.
That i'm less outraged about, because it's ordinary ignorance, rather
than the special kind of brainwrong reflected in the primary WTF.
StAX was only added in 1.6.
Oh god, i've just spotted another one: the hardcoded CRLF! This is a
linux-only project (up to and including developing on linux VMs - the
only time you'd ever look at this file would be on a linux machine), and
XML normalises all line breaks to LF anyway. Why would you do that?
Most likely someone that only knows Windows.
Still, at least it's not this, from the other end of the project:
private static final String TEST_DATA_QUERY = new
StringBuilder().append(" select * ")
.append(" from tps_report, tps_folder where tps_folder.id=tps_report.id ")
.append(" and tps_folder.id 57 ").toString();
Horrible.
I've got no beef with the SQL, that's fine, but WTF: the explicit
StringBuildering. The surplus spaces at the end of the strings and the
lack of indentation on the append lines are the icing on the cake. The
way the where clause is half on the same line as the from and half not
is good too.
None of this is strictly incorrect - it all works - but there's
something distinctly *wrong* about it. It doesn't fill you with
confidence that the important things are done correctly. Nor does
actually looking at the important things, as it happens, because one
immediately sees that they aren't.
I think the standard term is "code smell" - in this case I would
make it "code stink".
Arne