Software:List of Software Anti-Patterns: Difference between revisions

From HandWiki
(import)
 
No edit summary
 
Line 1: Line 1:
{{Short description|A list of software and computer science anti-patterns.}}
{{Short description|A list of software and computer science anti-patterns.}}
{{Draft topics|software|computing|technology}}
{{AfC topic|stem}}
<!-- Important, do not remove this line before article has been created. -->


[[Anti-pattern|Anti-Patterns]] are commonly used ways of doing software engineering that are not useful or cause more issues than they solve.  See [[Design Patterns]] for the opposite.  There are many diverse types of software [[Anti-pattern|anti-patterns]].  Some relate to [[Software design|software design]], [[Object-oriented programming|object-oriented programming]], [[Computer programming|computer programming]], methodological, [[Configuration management|configuration management]], [[DevOps]], and other aspects of [[Software engineering|software engineering]].  Several books have popularized the idea and teaching of anti-patterns, including ''Anti-Patterns''<ref>{{Cite book |last=Jimenez |first=Edward |url=http://antipatterns.com/EdJs_Paper/Antipatterns.html |title=AntiPatterns |date=2006-04-24 |year=2006}}</ref>,  
[[Anti-pattern|Anti-Patterns]] are commonly used ways of doing software engineering that are not useful or cause more issues than they solve.  See [[Design Patterns]] for the opposite.  There are many diverse types of software [[Anti-pattern|anti-patterns]].  Some relate to [[Software design|software design]], [[Object-oriented programming|object-oriented programming]], [[Computer programming|computer programming]], methodological, [[Configuration management|configuration management]], [[DevOps]], and other aspects of [[Software engineering|software engineering]].  Several books have popularized the idea and teaching of anti-patterns, including ''Anti-Patterns''<ref>{{Cite book |last=Jimenez |first=Edward |url=http://antipatterns.com/EdJs_Paper/Antipatterns.html |title=AntiPatterns |date=2006-04-24 |year=2006}}</ref>,  

Latest revision as of 20:11, 16 February 2025

Short description: A list of software and computer science anti-patterns.


Anti-Patterns are commonly used ways of doing software engineering that are not useful or cause more issues than they solve. See Design Patterns for the opposite. There are many diverse types of software anti-patterns. Some relate to software design, object-oriented programming, computer programming, methodological, configuration management, DevOps, and other aspects of software engineering. Several books have popularized the idea and teaching of anti-patterns, including Anti-Patterns[1],

Anti-Patterns can be found in anything that has organization, from project management to cultures[2], but this list focuses solely on Software and Computer Science anti-patterns.

Software engineering anti-patterns

This is a list of known anti-patterns. See linked pages for details.

Generic software design

  • Race hazard

Object-oriented

  • Object cesspool
  • Poltergeists

Programming

  • Action at a distance
  • Boat anchor
  • Caching failure
  • Hard code
  • Magic strings
  • Repeating yourself
  • Shooting the messenger

Methodological

  • Golden hammer
  • Premature optimization
  • Reinventing the square wheel

Configuration management

  • DLL hell
  • JAR hell

References

  1. Jimenez, Edward (2006-04-24). AntiPatterns. http://antipatterns.com/EdJs_Paper/Antipatterns.html. 
  2. Neill, Colin J.; Laplante, Philip A.; DeFranco, Joanna F. (2011). Antipatterns: Managing Software Organizations and People. Applied Software Engineering Series. Applied Software Engineering Series (2nd ed.). CRC Press. ISBN 9781439862162.