| Fedor | Descrição | Fatoração |
|---|---|---|
| Código Duplicado | Repetições de trechos de código | Extrair método |
| Nome inconsistente | Use nomes consistentes | Renomear método |
| Código Morto | Uma variável, método, parâmetro, pedaço de código, modelo, etc. não está sendo utilizado em nenhum lugar | Remover o código |
| Obsessão das Primitivas | Uso de primitivas em excesso (deixam o código confuso) | Extrair método |
| Nome não-comunicativo | Escolha nomes que comuniquem a intenção (use o melhor nome que puder no momento, depois você muda, se necessário) | Renomear o elemento |
| Método Longo | Quanto mais longa o método pior pra se saber o que é que está acontecendo | Extrair método |
| Comentário | Somente deve ser usado pra dizer "o porque" (e não "o que"). Tendência a verborragia. Reduz a clareza do código. | Extrair método / Renomear método ou Variável / Introduzir Asserções |
| Classe "metida" | Classe longa, tentando fazer muita coisa (normalmente com muitas variáveis) | Extrair Classe |
| Classes com mesmo trecho de código | Duas ou mais classes com trecho comum de código | Extrair Classe (criar Classe Abstrata) |
| Classe "Invejosa" | Classe que faz coisas que são de responsabilidade de outro | Extrair Classe |