Fork me on GitHub

Keep Learning Conhecimento nunca é o bastante

Postado em
29 January 2008 @ 9:42

Tag(s)
Desenvolvimento, Dicas

Code smells

Você sabe o que é um “code smell“? Bem, mesmo sem saber a definição, são muito grandes as chances de que você já tenha se deparado com um.

Code Smell é um sintoma de que algo no código pode estar errado. Geralmente indica a necessidade de um refactoring ou de alteração estrutural da aplicação.

Alguns code smells muito comuns são:

  • Lazy class – uma classe “burra”, ou seja, que faz muito pouco (os famosos BOs, TOs e etc, comuns no mundo Java);
  • Feature envy – uma classe que utiliza excessivamente os serviços de outra;
  • Contrived complexity – uso forçado de design patterns complexos onde não são necessários;
  • Inappropriate intimacy – uma classe que depende de detalhes de implementação de outra.

E você, o que já viu por aí?

Veja também:

Code smells taxonomy
Refactoring.com


4 Comentários

Comentário por
Thiago Brito
29 January 2008 @ 14:25

Um livro excelente que ajuda muito a detectar os “cheiros ruins” no código e vale a pena dar uma lida é:

Refactoring: Improving the Design of Existing Code

http://www.amazon.com/Refactoring-Improving-Existing-Addison-Wesley-Technology/dp/0201485672/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1201623790&sr=8-1

Ele também tem uma versão em Portugues que tem uma tradução também muito boa, que pode ser encontrado em:

http://compare.buscape.com.br/refatoracao-aperfeicoando-o-projeto-de-codigo-existente-martin-fowler-8536303956.html


Comentário por
lucashungaro
29 January 2008 @ 14:37

Realmente Thiago. Não mencionei no post, mas o livro de Martin Fowler virou praticamente um guia oficial do refactoring.

Um catálogo atualizado de técnicas de refatoração pode ser emcontrado em: http://www.refactoring.com/catalog/index.html


Comentário por
Felipe
29 January 2008 @ 16:13

Não seira “BAD smell” ao invés de “code smell”? Pois se me lembro bem o próprio Martin Fowler usa o termo Bad Smell.

Abração,


Comentário por
lucashungaro
29 January 2008 @ 16:28

Felipe, isso varia de literatura para literatura mesmo.

Veja dois possíveis significados da palavra “smell”:

– To have or emit an unpleasant odor; stink: “This closet smells”.
– To appear to be dishonest; suggest evil or corruption.

E as possíveis traduções:

n. – aroma (m), perfume (m), cheiro (m), odor (m), mau cheiro (m)

Na Wikipedia se utiliza “code smell” mesmo. Questão de preferência. 🙂


Deixe um comentário