If we consider that a pattern represents a best practice, an anti-pattern represents a lesson that has been learned. There are two notions of anti-patterns that are presented. Anti-Patterns:
Describe a bad solution to a particular problem which resulted in a bad situation occurring.
Describe how to get out of said situation and how to go from there to a good solution.
While it's quite important to be aware of design patterns, it can be equally important to understand anti-patterns. When creating an application, a project's life-cycle begins with construction however once you've got the initial release done, it needs to be maintained. The quality of a final solution will either be good or bad, depending on the level of skill and time the team have invested in it. Here good and bad are considered in context - a 'perfect' design may qualify as an anti-pattern if applied in the wrong context.
The bigger challenge happen after an application has hit production and is ready to go into maintenance mode. A developer working on such a system who hasn't worked on the application before may introduce a bad design into the project by accident. If said bad practices are created as anti-patterns, they allow developers a means to recognize these in advance so they can avoid common mistakes that can occur - this is parallel to the way in which design patterns provide us with a way to recognize common techniques that are useful.
To summarize, an anti-pattern is a bad design that is worthy of documenting.
*It is difficult in achieving a good balance between good design structure and good context.
If we consider that a pattern represents a best practice, an anti-pattern represents a lesson that has been learned. There are two notions of anti-patterns that are presented. Anti-Patterns:
While it's quite important to be aware of design patterns, it can be equally important to understand anti-patterns. When creating an application, a project's life-cycle begins with construction however once you've got the initial release done, it needs to be maintained. The quality of a final solution will either be good or bad, depending on the level of skill and time the team have invested in it. Here good and bad are considered in context - a 'perfect' design may qualify as an anti-pattern if applied in the wrong context.
The bigger challenge happen after an application has hit production and is ready to go into maintenance mode. A developer working on such a system who hasn't worked on the application before may introduce a bad design into the project by accident. If said bad practices are created as anti-patterns, they allow developers a means to recognize these in advance so they can avoid common mistakes that can occur - this is parallel to the way in which design patterns provide us with a way to recognize common techniques that are useful.
To summarize, an anti-pattern is a bad design that is worthy of documenting.
*It is difficult in achieving a good balance between good design structure and good context.