Code Smell 57 - Versioned Functions
Maxi Contieri
Posted on January 20, 2021
sort, sortOld, sort20210117, workingSort, It is great to have them all. Just in case
Problems
Readability
Maintainability
Solutions
Keep just one working version of your artefact (class, method, attribute).
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 patters 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
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
Software Engineering Great Quotes
Maxi Contieri ・ Dec 28 '20
This article is part of the CodeSmell Series.
Posted on January 20, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.