Síntese sobre Code Smells
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.
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