Antipadrões.
Soluções comuns para problemas recorrentes que parecem úteis, mas criam mais dificuldades do que resolvem.
Ação a distância é um antipadrão em que o código de uma parte do programa altera silenciosamente o comportamento de outra parte distante e sem relação.
Uma âncora de barco é código ou hardware mantido no sistema mesmo sem utilidade, o que confunde quem faz manutenção e deixa a compilação mais lenta.
Programação cargo cult é a inclusão ritual de código, padrões ou práticas copiados sem entender para que servem ou se são mesmo necessários.
Dependência circular é um antipadrão em que dois ou mais módulos dependem um do outro, e nenhum deles pode ser compilado, testado ou reutilizado sozinho.
Acoplamento forte é um antipadrão em que módulos dependem tanto dos detalhes internos uns dos outros que mudar um obriga a mudar os demais.
Ocultação de erros é um antipadrão em que o código captura um erro ou exceção e segue em frente sem registrá-lo, tratá-lo ou relatá-lo.
Um objeto deus é um antipadrão: uma única classe que sabe ou faz demais e concentra a maior parte dos dados e do comportamento do programa.
Banho de ouro é acrescentar funcionalidades ou acabamentos além dos requisitos acordados, o que aumenta custo e risco sem que o cliente tenha pedido.
O martelo de ouro é o hábito de aplicar a mesma ferramenta, linguagem ou solução conhecida a todos os problemas, mesmo aos que ela não resolve bem.
A codificação rígida embute dados como caminhos, credenciais ou alíquotas no código-fonte, de modo que alterá-los exige editar e recompilar o programa.
O efeito de plataforma interna é criar um sistema tão configurável que ele vira uma cópia ruim da plataforma em que roda, como um banco de dados dentro de outro.
Interface inchada é um antipadrão em que uma única interface acumula tantas operações que cada cliente depende de métodos que nunca usa.
Fluxo de lava é um antipadrão em que código obscuro e inacabado se solidifica em produção porque ninguém o entende o bastante para removê-lo.
Um número mágico é um literal sem nome no código cujo sentido o leitor precisa adivinhar; uma constante nomeada deixa o código mais claro e seguro de alterar.
Um poltergeist é uma classe de vida curta e sem estado que só existe para chamar métodos de outra classe, adicionando indireção sem adicionar comportamento.
Acoplamento sequencial é um antipadrão em que uma classe só funciona se seus métodos forem chamados em uma ordem específica que ninguém declara.
Código espaguete tem fluxo de controle emaranhado e sem estrutura — saltos, condicionais aninhadas e flags — que dificulta entendê-lo e mantê-lo.