CodeSOD: Switched Over


Twelve years ago, a company decided they needed a website. They didn’t have any web developers, and they didn’t want to hire any, so they threw a PHP manual at the new hire who happened to “be good with computers”, and called it a day.

Ms. “Good With Computers” actually learned something from the experience, and moved on to a lucrative career in web development. Unfortunately, she left behind the code she learned by doing, and now Bert has been brought in to clean up the code.

Take this block, which translates an airport code into a location name…

    switch ($v) {
        case "EIN": $ori = "Eindhoven";
            break;
        case "EIN": $ori = "Eindhoven";
            break;
        case "EIN": $ori = "Eindhoven";
            break;
        case "EIN": $ori = "Eindhoven";
            break;
        case "EIN": $ori = "Eindhoven";
            break;
        case "EIN": $ori = "Eindhoven";
            break;
        default: break;
    }

    switch ($b) {
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        case "WRO": $des = "Wroclaw";
            break;
        default: break;
    }

There’s hundreds of lines of this, following the same pattern- one switch block with the same condition repeated many times for each possible airport code. These blocks don’t exist in a function, either- they’re slapped right into the global namespace.

[Advertisement] Otter enables DevOps best practices by providing a visual, dynamic, and intuitive UI that shows, at-a-glance, the configuration state of all your servers. Find out more and download today!

http://ift.tt/2rHUGaL

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s