Code Smell 31 - Accidental Methods on Business Objects
Maxi Contieri
Posted on November 22, 2020
Adding persistence, serialization, displaying, importing, exporting code to an object bloats its protocol and brings coupling.
Problems
Readability
Coupling
Maintainability
Solutions
Keep your objects clean.
Decouple business objects.
Separate accidental concerns: Move Persistence, Formatting, Serialization to special objects.
Keep essential protocol using bijection.
Examples
Persistence
Identifiers
Serialization
Formatting
Sample Code
Wrong
Right
Detection
It is difficult (but not impossible) to create linting rules based on naming and hinting for suspect names.
Exceptions
- Some frameworks force us to inject dirty code in our objects. (For example identifiers).
We should try to use better languages/frameworks.
Tags
- Declarative
Conclusion
We are very used to see business objects polluted. This is normal. We need to reflect on the consequences and coupling from these designs.
Credits
Photo by Robert Bye on Unsplash
Simple things should be simple, complex things should be possible.
Alan Kay
Posted on November 22, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.