Software:List of Software Anti-Patterns

From HandWiki
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.