No-Parameterized constructors are a code smell of an **invalid* object that will dangerously mutate.
Incomplete objects cause lots of issues.*
TL;DR: Pass the essence to all your objects so they will not need to mutate.
Problems
Mutability
Incomplete objects
Concurrency inconsistencies between creation and essence setting.
Setters

Nude Models — Part I : Setters
Maxi Contieri ⭐⭐⭐ ・ Feb 20 '21 ・ 6 min read
Solutions
Pass the object's essence on creation
Create objects with their immutable essence.

The evil powers of mutants
Maxi Contieri ⭐⭐⭐ ・ Dec 19 '20 ・ 6 min read
Examples
- Some persistence frameworks in static typed languages require an empty constructor.
Exceptions
- Stateless objects. Always better solution than static class methods.
Sample Code
Wrong
class AirTicket {
constructor() {
}
}
Right
class AirTicket {
constructor(origin, destination, arline, departureTime, passenger) {
//...
}
}
Detection
Any linter can warn this (possible) situation.
More info
%[https://codexposed.hashnode.dev/constructors-demystified]

The evil powers of mutants
Maxi Contieri ⭐⭐⭐ ・ Dec 19 '20 ・ 6 min read

Code Smell 10 - Too Many Arguments
Maxi Contieri ⭐⭐⭐ ・ Oct 29 '20 ・ 2 min read
Tags
Essence
Incomplete
Mutable
Conclusion
Always create complete objects. Make their essence immutable to endure through time.
Every object needs its essence to be a valid one since inception.
We should read Plato's ideas about immutability and create entities in a complete and immutable way.
These immutable objects favor bijection and survive the passing of time.
Credits
Photo by Brett Jordan in Pexels
In a purely functional program, the value of a [constant] never changes, and yet, it changes all the time! A paradox!
Joel Spolski

Software Engineering Great Quotes
Maxi Contieri ⭐⭐⭐ ・ Dec 28 '20 ・ 13 min read
This article is part of the CodeSmell Series.

How to Find the Stinky parts of your Code
Maxi Contieri ⭐⭐⭐ ・ May 21 '21 ・ 8 min read
Last update: 2021/06/18
Top comments (0)