Skip to main content

Command Palette

Search for a command to run...

Code Smell 57 - Versioned Functions

Updated
1 min read
Code Smell 57 - Versioned Functions
M

I’m a senior software engineer loving clean code, and declarative designs. S.O.L.I.D. and agile methodologies fan.

sort, sortOld, sort20210117, workingSort, It is great to have them all. Just in case

Problems

  • Readability

  • Maintainability

Solutions

  1. Keep just one working version of your artifact (class, method, attribute).

  2. Leave time control to your version control system.

Sample Code

Wrong

findMatch()
findMatch_new()
findMatch_newer()
findMatch_newest()
findMatch_version2()
findMatch_old()
findMatch_working()
findMatch_for_real()
findMatch_20200229()
findMatch_thisoneisnewer()
findMatch_themostnewestone()
findMatch_thisisit()
findMatch_thisisit_for_real()

Right

findMatch()

Detection

We can add automatic rules to find versioned methods with patterns.

Like many other patterns we might create an internal policy and communicate.

Tags

  • Versioning

Conclusion

Time and code evolution management is always present in software development. Luckily nowadays we have mature tools to address this problem.

Relations

Credits

Photo by K8 on Unsplash

Original idea


That's why I write, because life never works except in retrospect. You can't control life, at least you can control your version.

Chuck Palahniuk


This article is part of the CodeSmell Series.

S
Sep5y ago

Thanks for another great writeup 👏

Would really love to see the full article contents in the rss feed.

1
M

Thank you.

Feed is developed by Hashnode

I don't have control on the format

Code Smells

Part 1 of 50

In this series, we will see several symptoms and situations that make us doubt the quality of our developments. We will present possible solutions. Most are just clues. They are no hard rules.