Síntese sobre Code Smells

Rafael Neves
3 min readMay 18, 2023

--

Hey folks,

Neste artigo irei falar a respeito do que venho estudando sobre Code Smells. Este artigo é uma sequência do Síntese sobre Aquitetura de Software e Design de Software.
Esta série de artigos destina-se a pessoas que estão começando na área ou que se deparam com esses termos, mas não conhecem sua verdadeira finalidade e aplicação.

fonte: https://www.alpharithms.com/wp-content/uploads/696/code-smell-overcoded.jpg

Não há muita definição sobre o que se trata Code Smell, basicamente é "sentir o cheiro" de irregularidades dentro do codigo, aquele feeling de que algo não está certo. Não se trata de algo que vai quebrar o seu código, mas encare como melhoria contínua e qualidade do seu código.

Devemos entender o que é uma estrutura ruim de código e com base nesse conhecimento tomar uma decisão assertiva a respeito. Gosto de abordar tópicos, quando vejo uma classe ou construo uma nova eu sigo estes nove itens abaixo como um guia:

1 — Linhas em branco

  • Sabe aquela linhas em branco para separar etapas de um método? Então,elas podem ajudar a separar blocos de código, mas um excesso delas pode dificultar a leitura. Mantenha seu código organizado e fácil de ler, sem espaços em branco desnecessários.

2 — Atributos/ nomes

  • Nomes são extremamente importantes! Se atenha em escrever nome de classes/ métodos/ funções que estes falem por si do que se tratem. A refatoração de nomes pode fazer uma grande diferença na legibilidade e manutenção do seu código.

3 — Código morto

  • É o código que não está sendo usado ou não tem impacto. É mais comum do que pensamos ver funções comentadas, se está comentada, não serve para nada então consideramos um código morto.

4 — Comentários

  • As vezes, os comentários são necessários, mas se você se encontrar escrevendo muitos deles, pode ser um sinal de que o seu código não é claro o suficiente. Crie variáveis e métodos descritivos para reduzir a necessidade de comentários.

5 — If’s e else’s complexos

  • Estas são estruturas que podem rapidamente se tornar confusas. Consolide os if’s e introduza a cláusula de guarda para sair do método o mais rápido possível. Também considere usar operadores ternários para simplificar seu código.

6 — Magic number

  • Estes são variáveis que aparecem sem explicação. Substitua-os por constantes nomeadas ou variáveis explicativas para que seja óbvio o que eles representam.

7 — Tratamento de exceção inadequados

  • Erros acontecem, mas a maneira como você lida com eles é crucial. Implemente um tratamento de erros adequado e consistente em todo o seu código

8 — Longa lista de parâmetros

  • Muitos parâmetros podem tornar a chamada de funções confusa. Considere introduzir objetos ou objetos de parâmetro para encapsular esses parâmetros e tornar seu código mais limpo e legível.

9 — Classe extensa

  • Classes que tentam fazer muitas coisas são difíceis de manter e entender. Considere mover métodos e responsabilidades para outras classes para manter suas classes focadas e de fácil manutenção.

Em resumo, a chave para um bom código reside na clareza e facilidade de manutenção. Qualquer desenvolvedor que o examine deverá compreender imediatamente do que se trata, sem precisar rolar a página para fazer buscas sobre conexões ou entender uma função de 100 linhas. É essencial que ele seja capaz de compreender rapidamente o contexto. Embora seja desafiador abordar todos os pontos de maneira precisa, é importante considerar todos os aspectos mencionados. Lembre-se de que essas são diretrizes recomendadas e não regras absolutas.

E é isso pessoal, como eu disse se trata de uma síntese do meu entendimento sobre o assunto, o qual venho aprendendo de forma muito produtiva com o Rodrigo Branas em seu curso.

Fonte:
- Curso Branas: Clean Code e Clean Architecture — Turma 11
- https://refactoring.guru/pt-br

--

--

Rafael Neves

Desenvolvedor de sistemas, apaixonado por tecnologia e novos aprendizados. Compartilhando insights no Medium.