Antipatterns.
Common solutions to recurring problems that look helpful but create more trouble than they solve.
Action at a distance is an antipattern in which code in one part of a program silently changes the behavior of a distant, unrelated part.
A boat anchor is code or hardware kept in a system although it no longer serves any purpose, confusing maintainers and slowing builds.
Cargo cult programming is the ritual inclusion of code, patterns or practices copied without understanding why they are needed — or whether they are.
A circular dependency is an antipattern where two or more modules depend on each other, so none of them can be built, tested or reused alone.
Tight coupling is an antipattern in which modules depend so heavily on each other’s internals that a change in one forces changes in the others.
Error hiding is an antipattern in which code catches an error or exception and carries on without logging, handling or reporting it.
A god object is an antipattern: a single class that knows or does too much and centralizes most of a program’s data and behavior.
Gold plating is adding features or polish beyond the agreed requirements, which adds cost and risk although the customer never asked for it.
The golden hammer is the habit of applying one familiar tool, language or design to every problem, including problems it fits poorly.
Hard coding embeds data such as paths, credentials or rates directly in source code, so changing them requires editing and rebuilding the program.
The inner-platform effect is building a system so configurable that it becomes a poor replica of the platform it runs on, such as a database inside a database.
Interface bloat is an antipattern in which one interface piles up so many operations that every client depends on methods it never uses.
Lava flow is an antipattern in which obscure, half-finished code hardens in production because nobody understands it well enough to remove it.
A magic number is an unexplained literal in source code whose meaning the reader has to guess; naming it as a constant makes code clearer and safer to change.
A poltergeist is a short-lived, stateless class that exists only to call methods of another class, adding indirection without adding behavior.
Sequential coupling is an antipattern in which a class only works when callers invoke its methods in one specific, unstated order.
Spaghetti code has tangled, unstructured control flow — jumps, nested conditionals and flags — that makes a program hard to follow and maintain.