![cover-img](https://project-assets.showwcase.com/1420x/16381/1680007976526-N_WJrSM5Cd6_NNS5MAtmLA.jpeg?type=webp)
Code Smell 57 - Versioned Functions
28 March, 2023
3
3
0
Contributors
Problems
- Readability
- Maintainability
Solutions
- Keep just one working version of your artifact (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 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
Code Smell 05 - Comment Abusers
Creditshttps://pbs.twimg.com/media/FWcrogWWQAAXXb1?format=png&name=small
Original idea
https://twitter.com/1341808635115151360
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
This article is part of the CodeSmell Series.
How to Find the Stinky Parts of your Code