Programming anti-patterns
- Busy spin: Consuming CPU while waiting for something to happen, usually by repeated checking instead of messaging
- Cargo cult programming: Using patterns and methods without understanding why
- Accidental complexity: Introducing unnecessary complexity into a solution
- Action at a distance: Unexpected interaction between widely separated parts of a system
- Blind faith: Lack of checking of (a) the correctness of a bug fix or (b) the result of a subroutine
- Boat anchor: Retaining a part of a system that no longer has any use
- Error hiding: Catching an error message before it can be shown to the user and either showing nothing or showing a meaningless message
- Caching failure: Forgetting to reset an error flag when an error has been corrected
- Lava flow: Retaining undesirable (redundant or low-quality) code because removing it is too expensive or has unpredictable consequences
- Loop-switch sequence: Encoding a set of sequential steps using a switch within a loop statement
- Soft code: Storing business logic in configuration files rather than source code
- Coding by exception: Adding new code to handle each special case as it is recognized
- Hard code: Embedding assumptions about the environment of a system in its implementation
- Spaghetti code: Programs whose structure is barely comprehensible, especially because of misuse of code structures
- Magic numbers: Including unexplained numbers in algorithms
- Magic strings: Including literal strings in code, for comparisons, as event types etc