Posted by keremkosaner on 12 April 2007
Anti-patterns, also called pitfalls, are classes of commonly-reinvented bad solutions to problems. They are studied as a category so they can be avoided in the future, and so instances of them may be recognized when investigating non-working systems. The term originates in computer science, apparently inspired by the Gang of Four’s book Design Patterns, which displayed examples of high-quality programming methods. The authors named these methods “design patterns”, by analogy with the same term used in architecture. The book Anti-Patterns (by William Brown, Raphael Malveau, Skip McCormick and Tom Mowbray, and more recently Scott Thomas) describes anti-patterns as natural counterparts or follow-ons to the study of design patterns. By formally describing repeated mistakes, one can recognize and refactor broken systems. Anti-patterns are not mentioned in the first edition of Design Patterns, which predated the term “anti-pattern”; however, one of the original Gang of Four authors, the late John Vlissides, offers an endorsement on the back cover.
Programmers should try to avoid anti-patterns whenever possible, which requires diagnosing them as early as possible in the software life-cycle. The concept of anti-patterns is readily applied to engineering in general.
From Wikipedia, the free encyclopedia
Posted in Anti-Patterns | Leave a Comment »
Posted by keremkosaner on 10 April 2007
In software engineering (or computer science), a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved. Algorithms are not thought of as design patterns, since they solve computational problems rather than design problems.
Not all software patterns are design patterns. Design patterns deal specifically with problems at the level of software design[citation needed]. Other kinds of patterns, such as architectural patterns, describe problems and solutions that have alternative scopes.
Patterns originated as an architectural concept by Christopher Alexander (1977/79). In 1987, Kent Beck and Ward Cunningham began experimenting with the idea of applying patterns to programming and presented their results at the OOPSLA conference that year. In the following years, Beck, Cunningham and others followed up on this work.
Design patterns gained popularity in computer science after the book Design Patterns: Elements of Reusable Object-Oriented Software was published in 1994 (Gamma et al). That same year, the first Pattern Languages of Programs conference was held and the following year, the Portland Pattern Repository was set up for documentation of design patterns. The scope of the term remained a matter of dispute into the next decade.
Although the practical application of design patterns is a phenomenon, formalization of the concept of a design pattern languished for several years.
From Wikipedia, the free encyclopedia
Posted in Design Patterns | Leave a Comment »