Design Smells
These are high-level smells – the tip of the iceberg. We should treat these smells as flashing warning signs. They definitely alert us about big problems, though they provide little information on the real cause of those problems.
If we find a design smell, it's probably time to stop, reflect upon our past design decisions, and decide whether we need to revisit those decisions. The problem with design smells is that they tend to take time to manifest, and sometimes it's too late.
The following is a list of design smells:
- Rigidity: The system is hard to change because every change forces many other changes to other parts of the system.
- Fragility: Changes cause the system to break in places that have no conceptual relationship to the part that was changed.
- Immobility: It is hard to disentangle the system into components that can be reused in the other systems.
- Viscosity: Doing things right is harder than doing things wrong. ...