Do not perform more than requested.
TL;DR: Unless you need atomicity, do not perform more than one task.
- Single Responsibility Principle violation
- Low Cohesion
- Break the function
def fetch_and_display_personnel(): data = # ... for person in data: print(person)
def fetch_personnel(): return # ... def display_personnel(data): for person in data: print(person)
Functions including "and" are candidates. However, we need to check them carefully since there might be false positives.
We should avoid doing more than needed, and our functions should be both minimal and atomic.
This smell was inspired by
If it takes more than a sentence to explain what you are doing, it’s almost always a sign that what you are doing is too complicated.
This article is part of the CodeSmell Series.