cover-img

Code Smell 83 - Variables Reassignment

Variable reuse is something we see in big chunks of code.

30 August, 2023

1

1

0

Variable reuse is something we see in big chunks of code.

TL;DR: Don't reuse variable names. You break readability and refactor chances and gain nothing but laziness.

Problems

  • Readability
  • Refactor chances
  • Missed Optimization
  • Mutability
  • Garbage Collection Missed Opportunities

Solutions

  1. Define, use and dispose variables.
  2. Keep your Definition, Usage and Destroy variables short.

Sample Code

Wrong

class Item:
def __init__(self, name):
self.name = name
def taxesCharged(self):
return 1;
class Money:
pass

lastPurchase = Item('Soda');
# Do something with the purchase

taxAmount = lastPurchase.taxesCharged();
# Lots of stuff related to the purchase
# I drink the soda

# I cannot extract method from below without passing
# useless lastPurchase as parameter

# a few hours later..
lastPurchase = Item('Whisky');
# I bough another drink

taxAmount += lastPurchase.taxesCharged();

Right

class Item:
def __init__(self, name):
self.name = name
def taxesCharged(self):
return 1;
class Money:
pass

def buySupper():
supperPurchase = Item('Soda');
# Do something with the purchase

# Lots of stuff related to the purchase
# I drink the soda
return supperPurchase;

def buyDrinks():
# I could extract method!

# a few hours later..
drinksPurchase = Item('Whisky');
# I bough another drink

return drinksPurchase;

taxAmount = buySupper().taxesCharged() + buyDrinks().taxesCharged();

Detection

Many linters can warn us from reusing variables

Tags

  • Readability

Conclusion

Reusing variables is a non-contextual copy and paste hint.

Relations

Code Smell 03 - Functions Are Too Long

More Info

Credits

Photo by Robby McCullough on Unsplash

https://twitter.com/1414832436547133440


Either way you look at it (DRY or laziness), the idea is the same: make your program flexible. When change comes (and it always does), you'll have a much easier time changing with it.

Chris Pine

Software Engineering Great Quotes


This article is part of the CodeSmell Series.

How to Find the Stinky Parts of your Code

1

1

0

Maxi Contieri

Buenos Aires, Argentina

🎓Learn something new every day.📆 💻CS software engineer 👷coding👨🏽‍🏫teaching ✍🏾writing 🎨Software Design 🏢SOLID 🌉TDD 👴Legacy 💩Code Smells

More Articles

Showwcase is a professional tech network with over 0 users from over 150 countries. We assist tech professionals in showcasing their unique skills through dedicated profiles and connect them with top global companies for career opportunities.

© Copyright 2024. Showcase Creators Inc. All rights reserved.