During my time in the Army, I used to get rankled when I’d see Television or Movies portray soldiers. Generally, they’d get something wrong; and usually, it wasn’t just something minor. It didn’t usually bug me when it was clear they weren’t trying to get it right. It bothered the hell out of me when it looked like they tried to get it right, but failed in some way that could have been prevented if they would have spent $1000 and hired a military consultant for a day.
The same thing bothers me about naming in source code. Well, not the military part, but the ‘bad acting’ part. Here are a few bad names I’ve seen in source code recently, and they are all from commercial applications.
timeout – Describes how old a file should be before it’s deleted
narrative – Refers to the ‘help’ field for a form or page.
nounset – where noun can be anything, like ‘bird’ or ‘category’ or ’email’ or ‘password’. The suffix ‘set’ is added to it to denote a ‘set’ of that noun. In some cases, it refers to a ‘template’.
That’s just a few; and there are more out there, probably in the application you work on.
What’s so wrong with bad naming?
Let’s say you have a new developer come onto your team. it doesn’t matter if this developer is just out of college or if he’s a 10 year veteran. He now has to learn what those words mean. He then has to apply those names to the intent behind them, and daily has to remind himself of what they mean.
timeout – fileage
narrative – instructions
nounset – nouns, or nounTemplate (This can also rely on the fact that in databases, a table is considered a collection of things; adding ‘set’ is redundant).