Article 1DFWC CodeSOD: The Difficulties of Choice

CodeSOD: The Difficulties of Choice

by
Remy Porter
from The Daily WTF on (#1DFWC)

It's no easy task combing through the submissions and choosing the right code sample.

Ulysses knows my pain. He recently inherited a Python codebase with plenty of global variables, no convention around capitalizing identifiers, inconsistent levels of indentation, and an AngularJS front end.

He found this when investigating a bug:

candidateNum=4if candidateNum == "4": handleCandidate4() return trueelse: handleCandidate3() return true

Once upon a time, this code received candidateNum as an input, and made a decision. Sometime in the past, Ulysses's predecessor changed it according to a ticket: "Only use the candidate4 settings". So, he hard-coded in candidateNum = 4 and released the change.

There was only one problem with that. Python's == operator does strict comparisons. 4 != "4", and never will be. This leads us to think that perhaps the last person to touch this code knew JavaScript a little better than Python, since JavaScript has no type system to speak and happily coerces types silently.

Ulysses removed the conditional logic.

buildmaster-icon.png [Advertisement] Scale your release pipelines, creating secure, reliable, reusable deployments with one click. Download and learn more today! TheDailyWtf?d=yIl2AUoC8zANidoVMgDhzY
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