Preply — Study more efficiently by working with a personal tutor. Get 50% off.Affiliate

Wikipedia

List of software 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. Anti-patterns can be found in anything that has organization, from project management to cultures, but this list focuses solely on software and computer science anti-patterns.

Generic software design anti-patterns Abstraction inversion – Computer programming anti-pattern Ambiguous viewpoint – Lack of clarity during software design Big ball of mud – Software source code with poor structurePages displaying short descriptions of redirect targets Database-as-IPC – Misusing databases for temporary messages Inner-platform effect – Tendency of software architects to replicate their development platform Input kludge Interface bloat – Overload of elements on an interface Magic pushbutton – Common anti-pattern in graphical user interfaces Race hazard – When a system's behavior depends on timing of uncontrollable eventsPages displaying short descriptions of redirect targets Stovepipe system – Isolated IT system

Object-oriented anti-patterns Anemic domain model – Programming anti-pattern Call super – Anti-pattern in object-oriented programming Circle–ellipse problem – Problem in object-oriented programming Circular dependency – Problematic interdependence of software modules Constant interface God object – Large or very powerful object in programming Object cesspool – Software creational design patternPages displaying short descriptions of redirect targets Object orgy – Allowing excessive access to object data Poltergeist Sequential coupling – Design issue in object-oriented programming Yo-yo problem – Symptom of over-complex software design

Programming anti-patterns Accidental complexity – 1986 paper on software project managementPages displaying short descriptions of redirect targets Action at a distance Boat anchor Busy waiting – Continuously checking a condition in computing Caching failure – Cache used to remember failed or missing responsesPages displaying short descriptions of redirect targets Cargo cult programming – Ritual inclusion of unnecessary computer code Coding by exception Error hiding – Failing to report details of an error Hard code – Putting data in the source code of a programPages displaying short descriptions of redirect targets Lasagna code Lava flow Loop-switch sequence Magic numbers Magic strings Repeating yourself Shooting the messenger – Metaphor referring to blaming the carrier of unwelcome information Shotgun surgery – Anti-pattern in software development Soft code Spaghetti code – Software source code with poor structure

Methodological anti-patterns Copy and paste programming Golden hammer Invented here – Management attitude for innovation or developmentPages displaying short descriptions of redirect targets Not invented here or (NIH) syndrome Premature optimization Programming by permutation (or "programming by accident", or "programming by coincidence") Reinventing the square wheel – Idiomatic expression, meaning to waste effort on something that has already been achievedPages displaying short descriptions of redirect targets Silver bullet Tester-driven development – Software development process

Configuration management anti-patterns Dependency hell – Colloquial term for software requiring many conflicting dependencies DLL hell – Computing slang Extension conflict JAR hell – Java Runtime Environment element which loads Java .class filesPages displaying short descriptions of redirect targets

See also

List of software architecture styles and patterns Software design pattern Anti-pattern AntiPatterns (book)

References

Tags

  • Anti-patterns
  • Object-oriented programming
  • Software design patterns