É interessante como nunca me ensinaram isso na faculdade. Quando uma pessoa aprende a desenvolver sistemas, também deveria aprender como não desenvolver. Principalmente isto. Assim, você pode focar na solução que deseja desenvolver e saberá se está fazendo algo muito errado. Saberá também quais as melhores práticas de desenvolvimento e, melhor ainda, poderá deixar seu código mais claro, conciso e flexível.
Sabe aquele código que você olha e sente um mau cheiro? Alguns pensam, outros preferem falar em voz baixa: – “Nossa, é um perigo mexer aqui”. Ou pior do que isso, você lê aquele comentário no início da classe: “Só Jesus entende o código abaixo, melhor você cair fora”. Pronto, você agora sente a prensença de um code smell.
Um code smell é uma parte do código fonte do seu programa que poderá causar algum problema. Na literatura existem vários padrões já identificados e difundidos. A partir destes padrões você pode avaliar seu código e verificar se ele está muito mau-cheiroso.
A Industrial Logic disponibilizou uma lista dos padrões de code smells mais conhecidos e das possíveis técnicas de refatoração que você pode utilizar para eliminar estes problemas. Acredito ser uma lista muito boa para consultar naquele momento em que queremos alterar o código fonte e tentar melhorá-lo.
Code smells mais comuns
Alguns autores preferem dividir a lista de code smells comuns em duas partes, os que estão em uma classe e os que envolvem mais de uma classe. Mas como o objetivo do post é ser introdutório, apresentarei uma lista única. São eles:
- Comentários
- Código duplicado
- Método longo
- Classe muito grande
- Muitos parâmetros
- Recurso invejoso
- Intimidade inaproriada
- Herança recusada
- Classe preguiçosa
- Complexidade inventada
- Identificadores excessivamente longos
- Identificadores excessivamente curtos
- Uso excessivo de literais
Agora tenha muito cuidado quando decidir alterar uma parte do seu sistema que esteja “funcionando”. Tenha testes que garantam o comportamento do seu sistema, pois a chance de você inserir outros erros, ao tentar eliminar os maus cheiros, é grande! Muita calma nessa hora. Refatorações devem ser controladas, objetivas e pequenas para que tenham os resultados desejados.
E melhor do que ficar lendo sobre code smells aqui, é procurar mais informações e ler um pouco mais sobre o assunto. Comece por esta lista de links: