Don't Repeat Yourself. Don't Repeat Yourself
TL;DR: You can find missing abstractions by looking at repeated code
-
DRY principle violation
-
Maintainability
-
Ripple Effect
-
Create the repeated code
-
Introduce an abstraction
-
Replace the references and point to the new abstraction
-
Remove the duplication
Repeated code is a symptom of missing abstractions.
This is natural in the learning process since we cannot foresee those abstractions.
def calculate_area(length, width):
return length * width
def calculate_volume(length, width, height):
return length * width * height
def calculate_area(length, width):
return length * width
def calculate_volume(length, width, height):
base_area = calculate_area(length, width)
return base_area * height
[X] Semi-Automatic
Some linters can find repeated code patterns.
The abstraction must have a dependency correspondence on the Bijection
- Bloaters
Repeated code is a problem and a hint for a missing abstraction.
Remember you don't need to avoid copying and pasting.
You must explicitly write the repeated code and remove the duplication by introducing an abstraction.
Avoiding the cut and paste is a shortcut and a symptom of premature optimization.
Code Smell 182 - Over Generalization
Code Smells are my opinion.
Photo by Mitchell Griest on Unsplash
Pasting code from the internet into production code is like chewing gum found in the street.
Mike Johnson
Software Engineering Great Quotes
This article is part of the CodeSmell Series.