Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Anti-pattern

From Wikipedia, the free encyclopedia
Solution to a problem that may be commonly used but is generally a bad choice
icon
This articleonly references primary sources. Please improve this article by addingsecondary or tertiary sources.
Find sources: "Anti-pattern" – news ·newspapers ·books ·scholar ·JSTOR
(September 2025) (Learn how and when to remove this message)

Ananti-pattern is a solution to a class of problem which may be commonly used but is likely to be ineffective or counterproductive.[1][2] The term, coined in 1995 byAndrew Koenig, was inspired by the bookDesign Patterns which highlightssoftware developmentdesign patterns that its authors consider to be reliable and effective.[3]A paper in 1996 presented by Michael Ackroyd at the Object World West Conference described anti-patterns.[3] It was, however, the 1998 bookAntiPatterns that both popularized the idea and extended its scope beyond the field of software design to include software architecture and project management.[3]Other authors have extended it further since to encompass environmental, organizational, and cultural anti-patterns.[4]

According to the authors ofDesign Patterns, there are two key aspects of an anti-pattern that distinguish it from a bad habit, bad practice, or bad idea. First, an anti-pattern is a commonly used process, structure or pattern of action that, despite initially appearing to be appropriate and effective, has more bad consequences than good ones. Second, another solution exists to the problem that the anti-pattern is attempting to address. This solution is documented, repeatable, and proven to be effective where the anti-pattern is not.

A guide to what is commonly used is a "rule-of-three" similar to that for patterns: to be an anti-pattern it must have been witnessed occurring at least three times.[5]

Documenting anti-patterns can be an effective way to analyze a problem space and to capture expert knowledge.[6] While some anti-pattern descriptions merely document the adverse consequences of the pattern, good anti-pattern documentation also provides an alternative, or a means to ameliorate the anti-pattern.[7]

Examples

[edit]

In software engineering

[edit]

In software engineering, anti-patterns include:[7]

God object
A singleclass handles all control in aprogram rather than control being distributed across multiple classes.
Magic number
A literal value with an important yet unexplained meaning which could be replaced with a named constant.
Poltergeist
Ephemeral controller classes that only exist to invoke other methods on classes.
Big Ball of Mud
Asoftware system that lacks a perceivable architecture. Although undesirable from a software engineering point of view, such systems are common in practice due to business pressures, developerturnover andsoftware entropy.

In project management

[edit]

Project management anti-patterns included in theAntipatterns book include:[4]

Blowhard Jamboree
An excess of industry pundits
Analysis paralysis
Viewgraph Engineering
Too much time spent making presentations and not enough on the actual software.
Death by Planning
Spending too much effort planning.
Fear of Success
Irrational fears near to project completion.
The Corncob
Difficulties with people.
Intellectual Violence
Intimidation through use of jargon or arcane technology
Irrational Management
Bad management habits.
Smoke and Mirrors
Excessive use of demos and prototypes by salespeople.
Throw It Over the Wall
Forcing fad software engineering practices onto developers without buy-in.
Fire Drill
Long periods of monotony punctuated by short crises.
The Feud
Conflicts between managers.
e-mail Is Dangerous
Situations resulting from ill-advised e-mail messages.

See also

[edit]

References

[edit]

What supports what

[edit]
  1. ^Budgen 2003, p. 225.
  2. ^Ambler 1998, p. 4.
  3. ^abcNeill, Laplante & DeFranco 2011, p. 4.
  4. ^abNeill, Laplante & DeFranco 2011, p. 5.
  5. ^Neill, Laplante & DeFranco 2011, p. 6.
  6. ^Jimenez 2006.
  7. ^abDemeyer 2008, p. 102.

Sources

[edit]
  • Neill, Colin J.; Laplante, Philip A.; DeFranco, Joanna F. (2011).Antipatterns: Managing Software Organizations and People. Applied Software Engineering Series (second ed.). CRC Press.ISBN 9781439862162.
  • Budgen, D. (2003).Software design. Harlow, Eng.: Addison-Wesley. p. 225.ISBN 0-201-72219-4.As described in Long (2001), design anti-patterns are 'obvious, but wrong, solutions to recurring problems'.
  • Ambler, Scott W. (1998).Process patterns: building large-scale systems using object technology. Cambridge, UK: Cambridge University Press. p. 4.ISBN 0-521-64568-9....common approaches to solving recurring problems that prove to be ineffective. These approaches are called antipatterns.
  • Jimenez, Edward (2006-04-24)."AntiPatterns".AntiPatterns. Retrieved24 April 2006.
  • Demeyer, Serge (2008). "ObjectOriented Reengineering". In Mens, Tom; Demeyer, Serge (eds.).Software Evolution. Springer Science + Business Media.ISBN 9783540764403.

Further reading

[edit]
  • Koenig, Andrew (March–April 1995). "Patterns and Antipatterns".Journal of Object-Oriented Programming.8 (1):46–48.
  • Laplante, Phillip A.; Neill, Colin J. (2005).Antipatterns: Identification, Refactoring and Management. Auerbach Publications.ISBN 0-8493-2994-9.
  • Brown, William J.; Malveau, Raphael C.; McCormick, Hays W.; Thomas, Scott W. (2000). Hudson, Theresa Hudson (ed.).Anti-Patterns in Project Management.John Wiley & Sons.ISBN 0-471-36366-9.
  • Stamelos, Ioannis (January 2010). "Software project management anti-patterns".Journal of Systems and Software.83 (1):52–59.doi:10.1016/j.jss.2009.09.016.

External links

[edit]

Media related toAnti-patterns at Wikimedia Commons


Gang of Four
patterns
Creational
Structural
Behavioral
Concurrency
patterns
Architectural
patterns
Other
patterns
Books
People
Communities
See also
National
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Anti-pattern&oldid=1314600361"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp