Patterns are abstractions of experienceAntiPatterns are more difficult to draft, but rapidly lead to sharing of experiences
Deductive writing process
1. Document solution
2. Define problem
Context and forces lead uniquely to solution
3. Review & elaborate
Inductive presentation
- Problem; therefore, solution
Iterative writing process
1. Identify AntiPattern
2. Define Refactored solution
3. Define AntiPattern solution
4. Define symptoms and consequences
5. Review & elaborate
Rhetorical presentation
- Bad solutions happen;
- How to prevent or fix them?
Intent of Design Patterns:
Logically unique solution
and alternative solutions
Notes:
Where patterns generally assume a specific context comprised of few, if any, pre-existing concerns which affect the design of a system, experience has demonstrated that situations with legacy and existing problems are much more commonplace in practice.
In contrast to Design Patterns, AntiPatterns, start with an existing “negative solution” or legacy approach, such as may be the result of a manager or developer’s ignorance or inexperience in solving a particular type of problem, or perhaps having applied a perfectly good design pattern in a wrong context.
The AntiPattern then amplifies the negative solution in a way that helps organizations recognize and understand a problematic situation, its symptoms, and its ultimate consequences.
The AntiPattern then presents a common solution that refactors the system to maximize benefits and minimize consequences.