Article 67ZQ0 CodeSOD: Advanced Programming Resources

CodeSOD: Advanced Programming Resources

by
Remy Porter
from The Daily WTF on (#67ZQ0)

Denilson was doing some appliance shopping, and upon submitting a form, it errored out. Denilson was sure the form was correct, and did what any of us would do: pop open the developer console and check the code.

The console dumped out a huge number of errors. And to no one's shock, the code had all sorts of home-made validation methods, like validateNumber. And, much to my surprise, they found new ways to make the simple task of validating a number horrible.

function validateNumber(value) { var digit, tam, dif; for (i=0;i<value.length;i++) { digit = value.substring(i,i+1); /* Advanced Programming Resources -> Must be improved... */ if(digit != 0) if(digit != 1) if(digit != 2) if(digit != 3) if(digit != 4) if(digit != 5) if(digit != 6) if(digit != 7) if(digit != 8) if(digit != 9) if(digit != ".") if(digit != "-") { return 2; } } if(value == "") return 1;}

At it's core, this is a pretty basic "verify the string doesn't contain non-numeric characters for our locale", one character at a time. But there are a few special twists on this one, like the pile of nested if's used to accomplish this. Then, of course, there's the cryptic return codes: 1 if the string is empty, 2 if it contains invalid characters, and... no value at all if it's a "valid" number?

But, of course, the real star of this block in the unusually honest comment: this code "must be improved", presumably by "advanced programming resources". It's an unusual cry for help, but it is clearly a cry for help.

otter-icon.png [Advertisement] Continuously monitor your servers for configuration changes, and report when there's configuration drift. Get started with Otter today!
External Content
Source RSS or Atom Feed
Feed Location http://syndication.thedailywtf.com/TheDailyWtf
Feed Title The Daily WTF
Feed Link http://thedailywtf.com/
Reply 0 comments