Top Qs
Timeline
Chat
Perspective
List of software anti-patterns
From Wikipedia, the free encyclopedia
Remove ads
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.[1][2]
Anti-patterns can be found in anything that has organization, from project management to cultures,[3] but this list focuses solely on software and computer science anti-patterns.
Remove ads
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 structure
- Database-as-IPC – Misusing databases for temporary messages
- Inner-platform effect – Tendency of software architects to replicate their development platform
- Input kludge – Type of failure in software
- 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 events
- Stovepipe system – Isolated IT system
Remove ads
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 pattern
- 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
Remove ads
Programming anti-patterns
- Accidental complexity – 1986 paper on software project management
- Action at a distance
- Boat anchor
- Busy waiting – Continuously checking a condition in computing
- Caching failure – Cache used to remember failed or missing responses
- Cargo cult programming – Ritual inclusion of computer code that serves no purpose
- Coding by exception
- Error hiding – Failing to report details of an error
- Hard code – Putting data in the source code of a program
- Lasagna code
- Lava flow
- Loop-switch sequence
- Magic numbers
- Magic strings
- Repeating yourself
- Shooting the messenger – Metaphoric phrase
- 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 development
- 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 achieved
- Silver bullet
- Tester-driven development – Software development process
Remove ads
Configuration management anti-patterns
- Dependency hell – Colloquial term for software requiring many conflicting dependencies
- DLL hell – Computing slang
- Extension conflict
- JAR hell
See also
References
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads