Software design principles represent a set of rules or guidelines that help software developers make design-level decisions. According to Robert Martin, there are four aspects of a bad design:
Immobile: An application is developed in such a way that it becomes very hard to reuse
Rigid: An application is developed in such a manner that any small change may in turn result in moving of too many parts of the software
Fragile: Any change in the current application results in breaking the existing system fairly easily
Viscose: Changes are done by the developer in the code or environment itself to avoid difficult architectural level changes
The above aspects of bad design, if applied, result in solutions that should not be implemented in the software architecture or development.
An AntiPattern is an outcome of a solution to recurring problems so that the outcome is ineffective and becomes counterproductive. What does this mean? Let's say that you come across a software...