Code Smell 133 - Hardcoded IF Conditions

Photo by Jessica Johnston on Unsplash

Code Smell 133 - Hardcoded IF Conditions

Hard coding is fine. For a short period of time

Maxi Contieri
·May 20, 2022·

2 min read

Subscribe to my newsletter and never miss my upcoming articles

Play this article

Table of contents

  • Problems
  • Solutions
  • Context
  • Sample Code
  • Detection
  • Tags
  • Conclusion
  • Relations
  • More Info
  • Credits

TL;DR: Don't leave a hardcoded mess on IFs.


  • Testability

  • Hardcoded values

  • Open/Closed Principle Violation


  1. Replace all IFs with a dynamic condition or polymorphism.


Hard-coding iF conditions is great when doing Test-Driven Development.

We need to clean up stuff.

Sample Code


private string FindCountryName (string internetCode)
  if (internetCode == "de")
    return "Germany";
  else if(internetCode == "fr") 
    return "France";
  else if(internetCode == "ar")
    return "Argentina";
    //lots of elses
    return "Suffix not Valid";


private string[] country_names = {"Germany", "France", "Argentina"} //lots more
private string[] Internet_code_suffixes= {"de", "fr", "ar" } //more

private Dictionary<string, string> Internet_codes = new Dictionary<string, string>();

//There are more efficient ways for collection iteration
//This pseudocode is for illustration
int currentIndex = 0; 
foreach (var suffix in Internet_code_suffixes) {
  Internet_codes.Add(suffix, Internet_codes[currentIndex]);

private string FindCountryName (string internetCode) {
  return Internet_codes[internetCode];


[X] Automatic

By checking If/else conditions we can detect hard-coded conditions.


  • IFs


In the past, hard-coding was not an option.

With modern methodologies, we learn by hard-coding, and then, we generalize and refactor our solutions.


More Info


Photo by Jessica Johnston on Unsplash

Don't be (too) clever. My point was to discourage overly clever code because "clever code" is hard to write, easy to get wrong, harder to maintain, and often no faster than simpler alternatives because it can be hard to optimize.

Bjarne Stroustrup

This article is part of the CodeSmell Series.

Share this