Antipatrones.
Soluciones habituales a problemas recurrentes que parecen útiles, pero crean más dificultades de las que resuelven.
La acción a distancia es un antipatrón en el que el código de una parte del programa cambia en silencio el comportamiento de otra parte lejana y sin relación.
Un ancla de barco es código o hardware que se conserva en un sistema aunque ya no sirve para nada; confunde a quien lo mantiene y alarga la compilación.
La programación de culto al cargo es la inclusión ritual de código, patrones o prácticas copiados sin entender para qué sirven ni si hacen falta.
Una dependencia circular es un antipatrón en el que varios módulos dependen entre sí y ninguno puede compilarse, probarse ni reutilizarse por separado.
El acoplamiento fuerte es un antipatrón en el que los módulos dependen tanto de los detalles internos de los demás que cambiar uno obliga a cambiar los otros.
El ocultamiento de errores es un antipatrón en el que el código captura un error o excepción y sigue adelante sin registrarlo, tratarlo ni notificarlo.
Un objeto todopoderoso es un antipatrón: una sola clase que sabe o hace demasiado y concentra la mayor parte de los datos y el comportamiento.
El chapado en oro consiste en añadir funciones o acabados más allá de los requisitos acordados, lo que suma coste y riesgo sin que el cliente lo pida.
El martillo de oro es la costumbre de aplicar una misma herramienta, lenguaje o diseño conocido a todos los problemas, incluso a los que no encajan con él.
La codificación rígida incrusta datos como rutas, credenciales o tarifas en el código fuente, de modo que cambiarlos exige editar y recompilar el programa.
El efecto de plataforma interna consiste en crear un sistema tan configurable que acaba siendo una mala copia de su propia plataforma, como una base de datos dentro de otra.
La interfaz inflada es un antipatrón en el que una interfaz acumula tantas operaciones que cada cliente depende de métodos que nunca usa.
El flujo de lava es un antipatrón en el que código oscuro y a medio terminar se solidifica en producción porque nadie lo entiende lo bastante para quitarlo.
Un número mágico es un literal sin nombre en el código cuyo significado hay que adivinar; una constante con nombre hace el código más claro y seguro de cambiar.
Un poltergeist es una clase efímera y sin estado que solo existe para llamar a métodos de otra clase, con lo que añade indirección sin aportar comportamiento.
El acoplamiento secuencial es un antipatrón en el que una clase solo funciona si sus métodos se invocan en un orden concreto que nadie declara.
El código espagueti tiene un flujo de control enredado y sin estructura —saltos, condicionales anidados y banderas— que lo hace difícil de seguir y mantener.