Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 20, 2022 11:42 pm GMT

Code Smell 133 - Hardcoded IF Conditions

Hard coding is fine. For a short period of time

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

Problems

  • Testability

  • Hardcoded values

  • Open/Closed Principle Violation

Solutions

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

Context

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

We need to clean up stuff.

Sample Code

Wrong

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  else    return "Suffix not Valid";}

Right

private string[] country_names = {"Germany", "France", "Argentina"} //lots moreprivate string[] Internet_code_suffixes= {"de", "fr", "ar" } //moreprivate Dictionary<string, string> Internet_codes = new Dictionary<string, string>();//There are more efficient ways for collection iteration//This pseudocode is for illustrationint currentIndex = 0; foreach (var suffix in Internet_code_suffixes) {  Internet_codes.Add(suffix, Internet_codes[currentIndex]);  currentIndex++;}private string SendUserName(string internetCode) {  return Internet_codes[internetCode];}

Detection

[X] Automatic

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

Tags

  • IFs

Conclusion

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.

Relations

More Info

Credits

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.


Original Link: https://dev.to/mcsee/code-smell-133-hardcoded-if-conditions-53bi

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To