Refatoração

Comentários de código (série Code Smells)

Dizer que comentário de código é mau cheiro não quer dizer que nunca devermos escrever comentários. Não estou afirmando isto, mas tome muito cuidado ao comentar seu código. Fowler et al (2002, p.71) afirmam que muitas vezes os comentários são usados como desodorante. A primeira ação a ser tomada é a eliminação dos maus cheiros, que possivelmente estão ao redor deste tipo de comentário. A primeira ação a ser tomada é refatorar. Quando você terminar, verá que os comentários serão supérfluos. Continuando nesta mesma ideia, Fowler demonstra quais métodos de refatoração utilizar diante de algumas necessidades de refatoração. Veja como faz sentido:

  • “Precisa de um comentário para explicar o que o bloco de código faz”? Use Extrair Método.
  • “Já extraiu o método e mesmo assim ainda precisa explicar?” Use Renomear Método.
  • “Precisa indicar algumas regras sobre o estado do sistema?” Use Introduzir afirmação.

Realize os procedimentos explicados acima e assim que terminar analise novamente se seus comentários ainda são necessários. Provavelmente não serão. Portanto, você deve usar comentários:

  • Quando não sabe exatamente o que fazer;
  • Para descrever o que está acontecendo;
  • Para explicar por que fez aquilo.

Este tipo de comentário com certeza irá ajudar os possíveis modificadores daquela parte do código.

Referências

Code Smells

É 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:

  1. Code smells by Wikipedia
  2. Code smells by Jeff Atwood in Coding Horror
  3. Code smells to refactoring, quick reference by Industrical Logic
  4. Badsmells to refactoring by java.net
  5. Code smells e refactoring by Carlos Duarte